Internet Explorer 11似乎成功执行了我的ajax调用。它运行success
条件下的代码一直到该块的最后一行,更新HTML DOM结构,但之后冻结。
我在IE中遇到的错误是:"由于长时间运行的脚本而没有响应#34;。
我的代码适用于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 Developer Tools中设置断点
但是我无法将其缩小到导致此问题的行。
该行
console.log('20');
也被击中,所以IE之后冻结,但除了loadContentviaAjax
我无法缩小导致冻结的原因....请帮助!
答案 0 :(得分:2)
好的!我找到了导致IE11挂起的代码片段。我不太确定你是如何解决它的,但我想你想知道。
在单击链接之前设置js调试器,然后暂停执行显示javascript将花费所有时间在http://pagead2.googlesyndication.com/pagead/osd.js。所以你的代码与它没什么关系。
单步执行表示Google的代码以某种方式陷入无限循环,从功能a跳到b再到c再次运行。它大部分时间都在catch块中用于在没有父项的iframe上调用getBoundingClientRect(抛出Unspecified Error)。
当我使用Fiddler下载http://pagead2.googlesyndication.com/pagead/osd.js时,您的导航工作正常。
我希望我能告诉你&#34;改变这个或那个它会起作用&#34;但我无法找到它 - 缩小的谷歌代码很难调试。您的代码是否有可能以某种方式将谷歌广告容器孤立?