开发者社区> 问答> 正文

jquery 多次ajax请求导致浏览器崩溃 400 请求报错 

现在有个需求,每秒去后台数据库取数据,使用jquery的ajax去异步请求数据,可是不到1分钟,在ie11浏览器就崩溃了,请问各位大大有什么好的解决方案?

展开
收起
kun坤 2020-05-30 17:30:38 854 0
1 条回答
写回答
取消 提交回答
  • 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

    2020-05-30 17:30:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载