【发布时间】:2014-09-19 04:21:35
【问题描述】:
Internet Explorer 11 似乎成功执行了我的 ajax 调用。它在success 条件下运行代码一直到该块中的最后一行,更新HTML DOM 结构,但之后冻结。
我在 IE 中遇到的错误是:“由于脚本长时间运行而没有响应”。
我的代码适用于 Chrome、Firefox 和 Safari!
当用户点击分页链接时,我如何调用函数loadContentviaAjax:
$(document).on('click', '.pagination-top a', function () {
//CODE
loadContentviaAjax($(this).attr('href'), rawNewURL);
console.log('20');
return false;
});
这是companysearch.js 中涉及的部分代码块:
function loadContentviaAjax(furl, rawNewURL) {
var webserviceURL = rawNewURL;
$.ajax({
type: "GET",
url: webserviceURL,
data: "",
cache: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function () {
$("#loadstatus").html($("#whoops").attr('data-message')).addClass('box_error');
},
success: function (data) {
console.log('0');
//MORE OF MY CODE
console.log('18'); //<-- this line is still logged
}
});
return false
}
我试过了:
- 注释掉我的 AJAX 调用的 success 块中的所有代码
- 尝试在 IE 开发者工具中设置断点
但我无法将其缩小到导致此问题的行。
线
console.log('20');
也被击中,所以 IE 在那之后冻结,但除了 loadContentviaAjax 我无法缩小导致冻结的原因....请帮助!
【问题讨论】:
-
19应该在0和10之前记录 -
@epascarello:啊,当然,你是对的 :) 但是,我现在进入了代码,但我的脚本在完成
success块后立即冻结了 IE。有什么想法吗? -
如果注释掉块中的代码,它会冻结吗?它会触发任何其他异步进程吗?是什么触发了 Ajax 调用?
-
是的,即使我将所有内容都注释掉,它也会冻结。我现在认为这与我之前发布的一个问题有关:stackoverflow.com/questions/25873953/… 我现在还注意到
success块内的日志记录仅在将调用的 web 服务的内容类型设置为text/plain时才执行,这是不可取的。那里有什么建议吗? :) -
JSON 有多大? JSON 有效吗?
标签: javascript ajax internet-explorer-11 freeze