如何在Asp.net中优化多个$ .ajax({...})函数加载?

时间:2011-06-10 11:06:02

标签: c# jquery asp.net web-services

我在asp.net Web应用程序中调用了页面加载的多个函数。

所有功能都在页面就绪方法上运行 见下面的代码

 $(document).ready(function(){
     func1();
     func2();
     func3();
    //....  so on.
    });
    function func1()
    {
    $.ajax({
     type: "POST",
      url: "Contents.asmx/GetText",
      data: "{ }",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function (msg) {
            /some code
      }
    });
    }

    function func2()
    {
    $.ajax({
     type: "POST",
      url: "Contents.asmx/GetTitles",
      data: "{ }",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function (msg) {
            /some code
      }
    });
    }

....喜欢聪明的人

对于后端我使用SQL server-05。 当页面加载它有更多的时间加载, 以上功能需要30秒以上才能加载。

如何优化函数调用?..

2 个答案:

答案 0 :(得分:1)

只要/some code不是太多,你就无法做到。这些ajax称区域重量轻。您的问题可能在后端,您将请求发送到。

要调试/配置您的问题,请先检查您的ajax请求。在像Firebug这样的网络工具中检查它们,看看您的请求是否符合要求。在那里,您还可以检查您的请求需要多长时间。

正如您现在看到的瓶颈(例如请求Contents.asmx/GetTitles需要这么长时间),请检查提供该页面的服务器。由于您没有提供该代码,我们无法帮助您。但那是你必须寻找下一步的地方。

答案 1 :(得分:1)

您可以将所有查询聚合到一个新的Web方法中,该方法将立即执行所有SQL查询。然后向这个新方法发送一个AJAX请求。就您的SQL服务器而言,您还可以将多个SQL查询发送到一次往返。尝试尽可能优化SQL查询。您也可以缓存一些昂贵查询的结果。