现在有个需求,每秒去后台数据库取数据,使用jquery的ajax去异步请求数据,可是不到1分钟,在ie11浏览器就崩溃了,请问各位大大有什么好的解决方案?
var ajax = { abort: function () {} //定义一个空的方法, 是为了下面ajax.abort()不报错 }; setInterval(function () { ajax.abort(); //每次提交前, 先放弃上一次ajax的提交, 这样就不会同时有多个ajax正在请求, 卡死浏览器 ajax = $.ajax({ }); }, 1000);
######回复 @mr-zhuo : 。。我去。好吧。不过一般这种,我都直接考虑回调函数中延后调用,实现递归调用的。######回复 @sxgkwei : 对啊. 那个空方法只是为了第一次执行不报错啊...######回复 @mr-zhuo : 就算有方法,那再次执行,也应该不是你上面写的那个空方法了吖。。。######回复 @sxgkwei : $.ajax函数返回它创建的XMLHttpRequest对象, XMLHttpRequest是有abort方法的######回复 @mr-zhuo : $.ajax()方法好像不会有返回值的。就算有,这个返回值也不一定有abort属性,并且此属性是个方法来供你调用吧?你局的呢?######换解决思路,服务器推送###### 真的需要每秒都发一次请求吗?在上一次的请求的callback里发起下一次请求不行吗? ###### 每秒一次去访问,如果1S内处理不了这个业务数据,那么浏览器会再开启另一个线程,这样肯定会导致浏览器崩溃。
你应该换一个思维,从服务器端推数据过来,你可以看下angularjs。 ###### 我也遇到这个需求,找不到解决方案,只能自己写了一个 ajax 队列扩展来解决了
放这里了,如果有需求的话,可以看看,顺便帮加星 https://github.com/toohamster/jquery-fetch
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。