当URL具有相同的响应时间时,为什么某些AJAX调用比其他调用需要更长的时间才能完成
Why do some AJAX calls take drastically longer to finish than others when the URLs have the same response time?
为了简化我的情况;我有3个PHP页面。其中两个分别添加和删除数据库中的行。第三个获取所有行,将它们编码为JSON并打印结果。
我已经对所有页面的执行进行了计时,时间从0.001秒到0.004秒不等。以下是Ajax调用的时间:
将整个表提取为JSON:8-12ms
添加行:990-1010ms
删除行:990-1010ms
添加和删除时间的响应时间在我的应用程序中造成了不必要的延迟,因为PHP的执行时间只有几秒钟,它们的输出只是成功的"1"和失败的"0"(与fetch调用相比,fetch调用将多达100行(约10列)的数据打印为JSON)
我所有的Ajax返回时间都是用Firebug来衡量的。所有Ajax调用都是通过jQuery($.ajax()
)进行的。
我猜这与Firefox不考虑GET请求得到响应有关,除非它收到了特定数量的字节或字符,而1秒的响应时间是某种超时
在这个问题上有什么智慧可以分享吗?
我已经在Chrome和Opera中计时了AJAX加载时间(平均值):
歌剧:
*所有AJAX调用~15毫秒
铬:
*移除行并获取行:~25ms
*添加行:~350ms
我的应用程序在Opera中快速响应,但在所有其他浏览器中都有不同程度的迟缓。确切的原因我还不清楚。
我也选了IE 9的时间,它的性能几乎与Opera相同。我的应用程序现在可以在两个浏览器中快速运行。
显然,有些浏览器在URL中使用localhost
而不是127.0.0.1
会产生神秘的副作用。延迟整整一秒就是其中之一。使用127.0.0.1
为我解决了这个问题。
如果你使用HTTPWatch
会更好。它会告诉你所有js文件、css和页面渲染等的确切时间。这样你就可以分析哪个调用需要更多的时间以及为什么。我不确定我是否回答了你的问题,但希望你能从HTTPWatch
得到一些帮助。
这里您有一篇好文章,将告诉您如何通过最小化请求时间来提高网站性能。
我没有任何信息可以作为基础,但我现在的猜测是罪魁祸首之一:
- 磁盘速度慢-添加和删除行可能需要比读取更多的磁盘访问权限(加上MySQL可能正在进行查询缓存)
- 索引-MySQL必须在更改或添加列时更新其索引
除非你应该评测你的代码。使用xdebug和/或直接通过MySQL运行MySQL查询,看看它们需要多长时间。
- 使用metro-uiJS对话框调用其他文件html
- 这个关键字位于$.ajax()中,用于调用其他函数来设置url
- 如何在Javascript中创建一个调用其他函数的函数
- 我用脚本创建了一个按钮.我可以通过点击按钮调用其他函数吗?我这样做,但失败了
- 在ASP中调用HTML以调用其他脚本
- Javascript 调用其他对象方法
- 用于调用其他命令的 Windows 脚本
- 需要解析其他网页的值.首先,我需要调用其他网页并从中解析 XML 值
- jQuery调用其他事件处理程序中的事件处理程序函数
- 一个 JavaScript 函数调用其他几个函数
- Ajax 可以调用其他 Ajax 页面吗?
- 当我调用其他提交函数时,$anchorScroll正在进行第二次单击
- OOJS 调用其他方法
- Javascript 对象调用其他对象粉碎迭代器
- 如何调用“;点击“;输入类型“on input type”;文件“;通过调用其他元素的上下文
- 使用此函数在回调中调用其他函数
- 当javascript函数更改html输入文本时,我希望输入文本像调用其他JS函数一样触发事件
- 调用其他标记的onclick事件
- 如何使用javascript来调用其他类似于此代码的javascript
- 在JavaScript中调用其他选项方法