我正在尝试在定期更新的JSP页面中改进容错。超时用于跟踪提交页面的时间。
问题是通信经常出现故障,这会让我们看到一个破损/缺失的页面,当通讯重新启动并再次运行时,该页面将不会刷新。
以下代码是当前的实现。
function startTimer(buttonid) {
var startstring = 'myTimer("' + buttonid + '")';
window.setTimeout(startstring,15000);
}
function myTimer(buttonid) {
window.document.forms[0].submit();
}
在页面的onload事件中调用startTimer()。
<body onload="startTimer('blurp');
最佳解决方案是在通信中断时优雅降级的页面。在这种情况下,它会发出错误消息,并在设定的时间段后再次尝试刷新。
我在Prototype中查看PeriodicalUpdater作为解决此问题的方法。
答案 0 :(得分:1)
如果使用假div来存储ajax请求的结果,当你得到一个响应然后更新真正的div,当你得到一个通信错误而不是什么都没有或者向客户端发信号通知那个div中的数据时怎么样?已经老了
new Ajax.PeriodicalUpdater($('fakeUpdateDiv'),
url, {
frequency : 30,
method : 'get',
parameters : {
},
onSuccess : function(transport) {
$('realUpdateDiv').update(transport.responseText);
},
onFailure : function(transport) {
//do something
}
});
PS :fakeUpdateDiv
设为display:none