使用jQuery延迟接收Ajax结果

时间:2009-10-27 15:46:28

标签: jquery ajax

我有一个简单的jQuery Ajax调用,它从PHP文件中获取HTML结果(它只执行一个mysql查询并在列表中格式化结果)。我遇到的问题是整个Ajax调用需要大约12秒才能执行(Firebug中的'Waiting for Response'时间是12.3秒),但是当我在浏览器中加载具有相同URL参数的PHP页面时,整个页面加载大约300毫秒(当我刚刚运行PHP文件调用的SQL查询时,它需要不到1毫秒)。

其他一些可能有用的说明:

  • Ajax数据的大小是2kb,所以我认为不是因为它。
  • 如果在已经运行一次之后使用相同的参数完成相同的ajax调用,则加载数据(约4.3s)要快得多(即使我将页面的Cache-Control设置为:private, no-store,no-cache,must-revalidate,post-check = 0,pre-check = 0)

以下是ajax调用的jQuery源代码:

$.ajax({
            url:    "./lib/hippofunctions.php",
            type:   "GET", 
           dataType: "html",
            data:
                {
                    "ajax_action" : "get_hippos_for_tags",
                    "curTags" : currentCheckedTags,
                    "sortBy" : sortBy, 
                    "params" : checkedFriendsStr,
                    "location" : location,
                    "start"  : start
                },
            error:  function(request){my_alert("error on ajax_getHipposfortags ")},
            success:function(data){ 
                $("#HippoContainer_inner").html(data);
        }
        })
    }

为什么花了这么长时间才能收到Ajax数据以及如何加快速度呢?

1 个答案:

答案 0 :(得分:0)

我将通过更多建议更新此内容,但现在对成功函数进行一些性能测试:

success:function(data){
 console.time("data render");
 $("#HippoContainer_inner").html(data);
 console.timeEnd("data render");
}