我有一个 Ajax 小部件,它监视网页上的连接状态,并在无法再访问服务器时提醒用户。它适用于 Windows 7,但在 Mac OSX 10.5.8(Safari 和 Firefox)上失败。
关键代码在这里:
(function(e){
e.fn.checknet=function(config){
function checkConnection(config){
e.ajax({
url:config.checkURL,
cache:false,
success:function(){
window.checknet.conIsActive=true
},
error:function(){
window.checknet.conIsActive=false
},
complete:function(){
if(window.checknet.conIsActive){
connectionExtablished()
}
else{
connectionLost()
}
}
})
setTimeout(
function(){checkConnection(config)},
config.checkInterval
)
}
}
})(jQuery);
我每五秒钟就调用一次。当我关闭服务器时,Windows 浏览器确实会在五秒钟内注意到。但是,我 Mac 上的浏览器需要大约两分半钟。
从其他 问题来看,我认为缓存可能是一个问题。但是,我尝试parameters:"defeatcache=" + new Date().getTime()
在 Ajax 调用$.ajaxSetup({ cache: false });
之前插入 Ajax 调用;两者都不起作用。
有人对我如何让我的 Mac 浏览器更快地注意到断开的连接有任何建议吗?