AJAX加载MVC视图很慢

时间:2015-04-27 10:39:13

标签: javascript jquery ajax asp.net-mvc asp.net-ajax

我正在尝试使用标准jQuery AJAX调用将MVC视图中的AJAX转换为空标记: -

function AjaxLoadPanel(url, id) {
    var a = 1;

    $.ajax({
        url: url,
        cache: true,
        type: "GET",
        success: function (data) {
            if (data == "PageNotFound") {
                window.location = "page-not-found";
            }
            else {
                $(id).html(data)
            }
        },
        error: function (response) {
            $(id).html("");
        }
    });
}

MVC控制器只返回带有MVC表单的View,以及超出该范围的HTTP Post以接受表单数据。但是,当我将带有div标签的页面以及DLL和视图放在服务器上时,在使用AJAX调用的视图返回填充div标签之前存在明显的延迟。当我说明显滞后时,我的意思是在页面加载后30到60秒。 AJAX调用最终完成,但是这样的问题使得页面对于毫无戒心的用户来说是无用的。

我查过的东西: -

  • 所有脚本都是站点本地的,不需要调用外部JS文件。
  • 所有CSS都是网站本地的,无需外部电话。
  • 视图和DLL肯定在正确的位置
  • 标题中没有脚本。
  • 视图最终会将AJAX放入正确的面板中。
  • 等待时间来自专门调用视图。导航到视图的URL会导致在返回视图之前等待30-60秒。

如何加快视图的检索速度?如果可能的话,我需要它在页面加载的1秒内?此外,在localhost上,此功能以闪电般的速度运行,加载速度约为0.2 / 0.3秒。

服务器可能很慢吗?

谢谢! 麦克

2 个答案:

答案 0 :(得分:1)

检查浏览器的网络面板加载AJAX请求需要多长时间。

我很确定后端/服务器有问题。您是否100%确定服务器后端代码与localhost后端代码相同?您还使用任何数据库来检索数据。也可能是数据库问题。

I added example pic here

答案 1 :(得分:0)

We found the issue eventually. A datbase connection string login was wrong and the 30 second wait was always 30 seconds because of the length to try and connect to the database for, before causing an exception. At 30 seconds those views that don't directly rely on a database connection are still retrieved, hence the 30 second wait every time.

Thanks for your help! Mike.