gpt4 book ai didi

javascript - 简单的 ajax 调用似乎被阻塞

转载 作者:数据小太阳 更新时间:2023-10-29 04:51:41 27 4
gpt4 key购买 nike

非常简单的问题。我试图测试我正在开发的 Restful web 服务,并进行这个简单的 ajax 调用(使用 jquery):

 <script type="text/javascript">  
$(document).ready(function() {
var url = '/index.php/gettest/reallyLongRequest';
$.ajax({
url: url,
dataType:'text',
success:function(data) { $('#result').html(data);},
error:function(xhr,err,e) { alert ("Error: " + err);}
});
});
</script>

这会在页面加载时运行。当它运行时,页面被阻塞;即,(我可以看到鼠标指针旁边的沙漏)无法处理其他用户操作。 (顺便说一句,这个特殊的 get 请求——故意的——需要很长时间才能返回)。

这是为什么? A(异步)JAX 对吗?显然我犯了初学者的错误。有什么想法吗?

当我尝试使用普通 javascript(无库)时,它按预期工作。这是否与 Jquery 对 xhr onreadystatechange 的处理有关?

感谢您的关注。

编辑:很多人建议设置 async: true,这恰好是 jquery 中的默认设置,因此没有任何效果。

编辑:如前所述,如果我使用纯 javascript 并使用计时器启动它,例如 window.setInterval(function() { startLongPoll(); }, 5000)它按预期更新,没有出现阻塞。有想法吗?

最佳答案

这是我为解决问题所做的示例:

jQuery(document).ready(function() {
setTimeout(function () {
$.getJSON("veryLongRequest", function(json) {
alert("JSON Result: " + json[0].id);});
}, 500); // You may need to adjust this to a longer delay.
});

注意:我正在使用简写的 jquery 方法“getJSON”,它是数据类型设置为“json”的 ajax 调用的包装器。但是,此解决方案适用于所有 ajax 请求。

引用:

Stop the browser "throbber of doom" while loading comet/server push iframe

关于javascript - 简单的 ajax 调用似乎被阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com