我有一个Web应用程序,可以在桌面和iPhone等移动设备上运行。它一直在iOS设备上运行良好,直到我们最近将其中一台设备升级到iOS6。现在我们看到一个奇怪的错误,它似乎只针对iOS6上的Safari。它仍然可以在iOS5 Safari上正常运行,并且在iOS6 Chrome上运行正常。iOS6 Safari JavaScript Ajax轮询问题?
该错误似乎与我们查询服务器更新的方式有关。我们已经建立了一个Ajax调用,每5秒发生一次。 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浏览器中的一个bug?我的代码中有一个错误?有没有解决方法?现在,我的网络应用在iPhone上无用,这不是一个好的情况。 谢谢!
ios6 safari缓存ajax结果。看到这个[问题](http://stackoverflow.com/questions/12506897/is-safari-on-ios-6-caching-ajax-results) –
** fyi **您可以更改'setInterval(“getUpdates() “,refresh);''setInterval(getUpdates,refresh);'以防止使用'eval'。 – andlrc
NuclearGhost,修复它,你可以把它放在一个答案,我可以接受它,并提供一些意见? – bluedevil2k