デスクトップやiPhoneなどのモバイルデバイスで実行するように設計されたWebアプリケーションがあります。最近デバイスの1つをiOS6にアップグレードするまで、iOSデバイスでは常に正常に機能していました。現在、iOS6のSafariにのみ固有のように見える奇妙なバグが見られます。iOS5 Safariでも問題なく動作し、iOS6Chromeでも問題なく動作します。
このバグは、サーバーに更新を照会する方法に関係しているようです。5秒ごとに発生するようにAjax呼び出しを設定しました。Ajax呼び出しは新しいデータを返し、クライアント側は新しいデータで更新します。Safari / iOS6で現在見られている動作は、前の呼び出しが戻ったときに呼び出しが即座に発生し、その結果、ページが常に更新および再描画されて使用できなくなることです。小さなスピナーも常に動作しているため、ページの読み込みが停止しないように見えます。
これを設定するクライアント側のJavaScriptコードは次のとおりです。
$(document).ready(function(){
getUpdates();
var refresh = 5000;
setInterval("getUpdates()", refresh);
});
function getUpdates() {
$.post("status.jsp", {}, function(status){
// do client-side rendering here
}, "json");
}
これはSafariのバグですか?私のコードのバグ?回避策はありますか?私のウェブアプリは今iPhoneでは役に立たない。良い状況ではない。ありがとう!