我使用GWT(Java到JavaScript)作为前端,RPC
机制(AJAX
)来发出服务器请求(Servlets
是键)。
到目前为止,一切都很顺利。
现在已经生成了一个测试用例,例如
1)向服务器发出请求
2)在两者之间断开客户端(用户)的互联网。
3)我们正在通过显示一些message
来处理该InvocationException
。
@Override
public void onFailure(Throwable caught) {
NTMaskAlert.unMask();
if(caught instanceof InvocationException){
NTFailureMessage.showFailureException(caught,"Network disconnected");
}
onNTFailure(caught);
}
3)现在client
重新连接,用户进行request.
这是有趣的一点。
一旦互联网重新连接,浏览器就开始处理上一个request
,我在火虫中观察到了这一点。如果我断开连接两次并重新连接两次,则会自动请求两次并发生重复数据。
原因很简单,这种行为通常是用户想要的。
也就是说,如果他们暂时脱离网络,例如因为无线路由器关闭,那么大多数时候他们希望浏览器、邮件等在网络恢复时会尝试重新连接,他们不希望必须去每个窗口并"刷新"让它再次开始工作。