我正在尝试使用 $.ajax 在 div 中打开异步页面,但在单击链接后我仍然有大约 3 秒的延迟并且该时间页面被卡住了。至少发生在 chrome 和 safari 上。我哪里错了..?
$.ajaxSetup({
async: true
});
$(document).ready(function() {
$("#Button").click(function(evt) {
$('#change').html('<p><img src="ajax-loader.gif" width="15" height="15" /></p>');
$.ajax({
url: "reg.php",
cache: false
}).done(function( html ) {
$("#change").html(html);
});
});
});
最佳答案
不,像这样的异步 ajax 请求不会阻塞浏览器。问题出在别处,在您未显示的代码中。您显示的代码将正确执行异步请求。
推测我们看不到的可能存在的问题:
如果链接有一个
href
,您并没有取消默认操作,所以它可能正在加载页面。您可以通过在点击处理程序中调用evt.preventDefault()
或在其末尾执行return false;
来阻止默认设置(这样做并停止传播).如果您在其他地方有其他代码将
async: false
设置为默认值,也许您的ajaxSetup
不会调用将其改回的值。
关于javascript - div 中的 Ajax 页面加载会停止浏览器,即使它是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599464/