用ajax实现的IPTV系统中,为了防止因为一个操作超时使得页面长时间没有任何反应(blocked)。在客户端用js做了一个定时,从发送ajax请求开始,如果5s后没有接到response就取消当前请求。而此时只是并没有取消服务器端的操作,如果此时做的是查询也就罢了,但是如果是购买等等操作呢?
一)超时后取消当前操作。可以有两种做法:
1.设定定时,如果超过5s,令canceled=true。添加callback:
[code="javascript"]addCallback(function(){
if(!canceled){
callback方法。。。
}
}
)[/code]
2.调用XMLHttpRequest的abort方法,
问:两者有什么区别吗?XMLHttpRequest的abort方法实现原理是什么?
二)这只是取消客户端的显示。如果是够买等操作,客户端显示“购买超时”,但是服务器5s后却是购买成功。这个有什么办法吗?
三)本系统不含收费系统,收费是通过调用另一系统的web service方法完成的。怎么取消一个web service调用,或者达到同样的效果?