JQ的ajax请求出问题了 我快奔溃了 求各位路人甲乙丙丁出手相救

发布于 2021-11-22 23:55:12 字数 1569 浏览 453 评论 9




var setinterval_id;
            var current_request;
            var isChange = false;
            $("#device").change(function(){
                $("#kongxian").val('请稍后');
                isChange = true;
                deviceName = $("#device option:selected").text();
                clearInterval(setinterval_id);
                setinterval_id =setInterval(function(){
                    current_request=$.ajax({
                            type: "GET",
                            data:",
                            url: "",
                            beforeSend:function(){
                            },
                            success: function(data){
                                if(current_request){
                                    current_request.abort();
                                }
                                if(isChange == true)
                                    isChange = false;
                                else
                                    $("#kongxian").val(data);

                            },
                            error:function(){
                                current_request.abort();
                            }
                    });
                },500);
            });



在本地不会这个提示,上传到空间就会这样



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

葬花如无物 2021-11-28 09:54:03

大概... 你删除循环请求就好了

粗略分析: ajax是异步请求,同一个异步请求你发出两次,浏览器应该不知道哪个响应对应哪个请求,所以这时候接收到的响应结果并不完全对应之前的请求。

本地没问题,是因为500毫秒在本地不存在网络延迟;你上线后可以测试500ms换成5000ms,这样的结果也许跟你预期一样

解决方法:

1. 响应处理逻辑用闭包, @sxgkwei 快到碗里来

2. 我忘了... (应该是请求带一个请求序列号(唯一值), 响应结果返回该值, 处理逻辑的时候判断...当初应该是这样想的 - -)

网名女生简单气质 2021-11-28 09:46:13

被我删的。 有时候可以正确请求到数据, 有时候就会出现上述代码。。

别低头,皇冠会掉 2021-11-28 08:57:37

12行里,是你源代码里就少一个“号还是你粘贴过来的时候少的?

月亮是我掰弯的 2021-11-28 02:53:24

哈哈哈哈~

猫性小仙女 2021-11-28 02:02:20

这样提问,看的人也崩溃了

自此以后,行同陌路 2021-11-28 01:49:44

谢谢, 我今晚调试下

旧伤慢歌 2021-11-27 23:42:07

具体是什么问题,,截图看看,打开浏览器调式器

贱贱哒 2021-11-27 23:21:35

嗯嗯。 我原来有async:false 变成阻塞 我jq是现学现卖。。没看过书, 就知道有一个ajax然后看了下基本写法就拿来用了。。

梅窗月明清似水 2021-11-23 14:58:49

这写法...  这代码...  这么高深的代码书写方式只有你自己看得懂了

改变下写法,不建议这么写,  ajax是异步   每隔500毫秒就请求, 后端代码根本就没法调试,current_request的值肯定会混乱,弄的出什么问题都找不到。  实在要这么写,把ajax设置中 加上  async:false 方便调试 和检查原因。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文