当URL具有相同的响应时间时,为什么有些AJAX调用比其他调用花费的时间要长得多?

时间:2011-06-22 03:02:34

标签: php javascript jquery html ajax

简化我的情况;我有3个PHP页面。其中两个分别从数据库中添加和删除行。第三个获取所有行,将它们编码为JSON并打印结果。

我已定时执行所有页面,范围从0.001到0.004秒。以下是Ajax调用的时间:

将整个表格取为JSON:8-12ms
添加行:990-1010ms
删除行:990-1010ms

添加和删除时间的响应时间导致我的应用程序出现不必要的迟缓,考虑到PHP执行时间仅为几分之一秒,并且它们的输出仅为“1”表示成功,“0”表示失败(与fetch调用,最多可打印100行(~10列)数据作为JSON)

我所有的Ajax返回时间都是在Firebug中测量的。所有Ajax调用都是通过jQuery($.ajax())。

完成的

我猜这与Firefox有关,不考虑GET请求,除非收到特定数量的字节或字符,并且1秒的响应时间是某种超时。

分享这个问题的任何智慧?


我已经计算了Chrome和Opera中的AJAX加载时间(平均值):

歌剧:
 *所有AJAX调用~15 ms

铬:
 *删除行和获取行:~25ms
 *添加行:~350ms

我的应用程序在Opera中很快且反应灵敏,但在所有其他浏览器中都有不同程度的缓慢。究竟为什么我仍然不清楚。


我也计时了IE 9,它与Opera的表现几乎相同。我的应用程序现在可以在两个浏览器中快速运行。

3 个答案:

答案 0 :(得分:1)

显然,某些浏览器在网址中使用localhost而不是127.0.0.1会产生神秘的副作用。增加的延迟时间是其中之一。使用127.0.0.1解决了我的问题。

答案 1 :(得分:0)

如果你使用HTTPWatch会更好。它会告诉你所有js文件和css以及页面呈现等的确切时间,你可以用这种方式分析,哪个调用需要更多时间和原因。我不确定我是否回答了你的问题,但希望你能从HTTPWatch得到一些帮助。

Here 您有一篇很好的文章会告诉您如何通过最小化请求时间来提高网站性能。

答案 2 :(得分:-1)

我没有基于此的信息,但我现在的猜测是其中一个罪魁祸首:

  • 慢速磁盘 - 添加和删除行可能需要比读取更多的磁盘访问权限(加上MySQL可能正在进行查询缓存)
  • 索引 - 当更改或添加列时,MySQL必须更新它的索引

除非你应该描述你的代码。使用xdebug和/或直接通过MySQL运行MySQL查询来查看它们需要多长时间。