仅在使用IE调用Ajax之后的MVC Slow Partial View渲染

时间:2018-02-20 19:51:04

标签: jquery asp.net-mvc asp.net-ajax partial-views

在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秒的延迟。它与其他浏览器的速度仍然非常快

0 个答案:

没有答案