Web ページ上の接続のステータスを監視し、サーバーに到達できなくなったときにユーザーに警告する 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);
5秒ごとに呼び出しています。サーバーをシャットダウンすると、Windows ブラウザーは実際に 5 秒以内に通知します。ただし、私の Mac のブラウザは約 2 分半かかります。
他の 質問から、キャッシングが問題になる可能性があることがわかりました。parameters:"defeatcache=" + new Date().getTime()
ただし、 Ajax 呼び出しと Ajax 呼び出しの$.ajaxSetup({ cache: false });
前に挿入しようとしました。どちらも機能しません。
Mac ブラウザが接続の切断をより早く認識できるようにする方法について、何か提案はありますか?