2012年9月28日星期五

jQuery 时间获取扩展

jQuery 时间获取扩展

本段代码实现了同步和异步获取服务器时间的放式,真正做到不会侵入服务器代码。主要原理是读取响应头部的Date值,即为服务器返回响应的时间(由服务器端生成),故可以以字符串格式取出,并可以转换为Date对象,以便后续操作。

对于获取服务器时间提供了同步和异步两种放式调用,可根据实际需要选择

jQuery.extend({    //获取系统时间    getSystemTime: function(){        return new Date();    },    //异步获取服务器时间    getServerTime_async: function(success){        $.ajax({            data: {_:Math.random()},            complete: function(xhr){                var str = xhr.getResponseHeader("Date");                var now = null;                if(str != null)                    now = new Date(str);                if($.isFunction(success))                    success(now);            }        });    },    //同步获取服务器时间    getServerTime: function(){        var xhr = $.ajax({            async: false,            data: {_:Math.random()}        });        var str = xhr.getResponseHeader("Date");        if(str == null)            return null;        return new Date(str);    }});//DEMO:console.log("$.getSystemTime()      Result: " + $.getSystemTime());console.log("$.getServerTime()      Result: " + $.getServerTime());$.getServerTime_async(function(t){    console.log("$.getServerTime_async()Result: " + t);});

TAG: