【发布时间】:2017-10-31 12:02:13
【问题描述】:
以下是我的 ASP.NET MVC 应用程序中的确切场景:
父页面有 3 个选项卡,编写以下 javascript 以将点击事件绑定到每个选项卡:
每个函数调用一个控制器动作(在 data-url 属性中指定),并在部分视图中呈现结果,该部分视图预计将显示在“ContactMainContainer”div 中。
jQuery(document).ready(function () {
$('#ContactTabs a').on('click', function () {
var dr = $(this).closest('li');
var url = $(this).attr("data-url");
if (url != undefined && url != '') {
var projectDetailTabModel = $("#ContactID").val();
$('#successDiv').hide();
$('#errorDiv').hide();
$.ajax({
type: "POST",
url: getUrlWithTabId(url),
data: projectDetailTabModel,
success: function (result) {
$('#ContactMainContainer').html(result);
},
error: function (errMessage) {
if (errMessage != null && errMessage.length > 0) {
$("#errorDiv").show();
$("#errorText").html(errMessage);
}
}
});
}
});
});
其中一个部分视图的内容是使用 javascripts 构建的(主要是 ajax 调用)。 (由于是客户项目和保密协议,我无法将整个javascript放在这里,并且javascript库太大,无法放在这里)。
问题在于,当用户导航到该特定选项卡(具有 Ajax 调用)时,执行和呈现结果需要很长时间。但在那之后,如果用户点击任何其他选项卡,浏览器就会卡住并无限期挂起。
此问题仅在 IE11 中存在,并且在所有其他浏览器(Chrome、firefox 等)中运行良好。
有人可以建议可能是什么原因吗?
【问题讨论】:
-
IE11 是否在控制台中抛出任何错误?将有助于了解
getUrlWithTabId(url)的作用。 -
不,IE 11 不报告任何错误。函数 getUrlWIthTabId(url) 只是构建 URL 并附加 TabId 以为浏览器中的每个选项卡创建唯一的 URL。在调试时,我可以看到这个 URL 是正确的,它也呈现输出,但比平时花费更多的时间。之后,单击任何其他选项卡只会挂起浏览器。
-
想解释一下为什么这个问题被否决了吗?反对投票者-如果您花一点时间解释一下,它不会让您变得不那么优越。如果你不能,那么不要直接投反对票。由于我在这个问题上付出的努力,我应该得到这里专家的某种讨论/解决方案。
标签: javascript jquery ajax asp.net-mvc internet-explorer