在AJAX调用之后,Internet Explorer是否存在任何已知问题以及部分页面呈现的速度?我在 LAYOUT 视图中有一个div:
<div id="customersearch">
@Html.Action("Customers")
</div>
它首先没有加载任何东西(在GET上)。在我的索引视图中,我有一个实际的文本框,您可以在其中搜索客户,因此当文档准备就绪时,jquery会执行此操作:
$(function () {
$('#searchbutton2').click(function () {
$.ajax({
url: '/Application/Customers',
dataType: 'html',
type: 'POST',
cache: false,
data: {
searchString: $("#searchString").val()
},
error: function () {
alert('error searching!');
},
success: function (responseText) {
$('#customersearch').html(responseText);
}
});
});
});
使用Chrome浏览器,iOS / Safari,FF搜索时,结果几乎瞬间出现。使用IE,大约有5秒的延迟。我将Visual Studio附加到我的IIS进程并设置断点,以查看对DB的实际调用是否是导致问题的原因,但事实并非如此。两者都在几分之一秒内检索数据,并且在&#34;返回视图(dbobjects)&#34;之后在控制器中发生暂停。
我听说有些浏览器会在返回大量记录时发生这种情况,但我的搜索字面上会显示一个包含一个和两个基本字段的表。但是IE非常慢。
我听说有人建议返回JSON而不是视图,但这总是回应这样的问题,其中返回了数百/数千条记录。在我开始使用JavaScript之前,是否有人在此代码中看到任何会导致IE11显着减速的内容?
-----编辑---
我改变了控制器以返回JSON数据(记住它只返回2个字段和单行)
success: function (responseText) {
$(".customerdetail").remove(); // clear any current results
//$('#customersearch').html(responseText);
var txt = "";
$.each(responseText, function (i, item) {
var txt = "<tr class='customerdetail'>"
+ "<td style='text-align:center;'>" + item.ID + "</td>"
+ "<td class='customernametd'>" + item.Name + "</td>"
+ "</tr>";
$('#customertable').find('tbody').append(txt);
});
}
然而..从控制器返回JsonResult到SUCCESS甚至似乎在IE11中触发时仍然有4-5秒的延迟。它与其他浏览器的速度仍然非常快