【问题标题】:Request Timing in `$.ajax` is sometimes above 1 second and sometimes 30ms`$.ajax` 中的请求时间有时超过 1 秒,有时超过 30 毫秒
【发布时间】:2013-07-09 12:18:47
【问题描述】:

我在 Windows 7 上使用 xampp 版本 1.7.7。我正在尝试这样做,当您单击保存图像时,它会在后台向 save_record.php 发送信息。我这样做是用

$.ajax({
      url: 'save_record.php',
      data: values.join("&"),
      success: function(data) {
            //document.write(data);
          }
    });

这显然不是问题。问题是响应很慢,我找不到原因。下面我添加了我从 chrome speed tracer 收到的数据。 Firebug 还显示 1 秒以上的所有响应。它们以 1055 毫秒或 1035 毫秒的格式出现,这让我觉得它在某处卡住了一秒钟。如果这还不够奇怪,它会在某个时间开始快速(30-50 毫秒)发出请求,这对我来说是一个完全可用的应用程序。否则 1 秒的延迟会杀死它。我曾经杀死进程 explorer.exe 并添加为新任务并且它有效。但下一次没有。我重新启动了电脑 - 这是一秒钟......当我输入这个问题时,它开始执行那些快速请求。一旦它开始快速运行,一切都很好,但是当我启动 xampp(或从睡眠状态打开我的笔记本电脑)时,它通常很慢(1sec+)。一段时间后(通常是 5 到 10 分钟),这是一个有点自我解决的问题,但它很烦人,而且很奇怪为什么会发生这种情况:) 希望我清楚这个问题。

附:我测试过,从第一个 php 标签到最后一个标签的时间差约为 20 毫秒,所以我认为不是 PHP 缓存在起作用?

附注 2。我会提供所需的任何其他数据,只是不确定要看什么:) 命名即可。

更新:添加了 Chrome 的网络标签。

更新:重新安装 xampp 后问题仍然存在:

【问题讨论】:

    标签: ajax apache xampp response delayed-execution


    【解决方案1】:

    C:\Windows\System32\drivers\etc\hosts 中取消注释127.0.0.1 localhost 行解决了这个问题。速度简直莫名的快了起来。我在here 中找到了这个建议。其实连Chrome打开其他页面的速度都提升了很多o.O

    【讨论】:

    • 你成就了我的一天,Andrius!从 6 秒的 ajax 请求到 600 毫秒
    【解决方案2】:

    你能拍下网络截图吗?Chrome 开发者工具的 Timing 选项卡需要一秒钟以上的请求并分享。例如

    您必须分析该选项卡中提到的每个操作所花费的时间。并从速度追踪器中查看事件追踪以获取更多信息。

    【讨论】:

    • 按要求添加了图像,但其中似乎没有那么多信息,至少你不能从中看出多少。而且,您能更具体地说明您想看什么活动吗?
    • 我认为这将是客户端问题,这就是为什么要求您上传它。现在它表明问题完全出在服务器端。我猜第一个请求需要时间,从下一个请求开始,它的响应速度更快。您能否提供一些有关您在服务器端的确切操作的信息。是否涉及任何数据库查询。如果是这样,您可以检查第一次和下一个连续请求所花费的时间。我猜第一个请求确实被计算并且连续请求正在使用上一个/第一个请求的缓存结果。
    • 昨晚我在编程时,所有请求都是 1 秒 + 几毫秒 (20...150)。有时,是的,第一次需要更长的时间,甚至可能长达 3 秒左右,但其他时间基本上停留在 1000 + 20...150 毫秒。似乎只为某事添加了一秒钟。我所拥有的是安装了 xampp,除了在 php.ini 中启用 xdebug 之外,我没有对其进行任何更改。但同样,正如我所说,有一段时间一切正常,处理事情所需的时间仅为 20...150 毫秒。
    • 此外,它会不时修复,然后返回到处理页面的长版本。我唯一的目的是可以在本地主机上实现网站的速度,这完全毁了它。有没有办法检查某些日志(如 apache 或其他日志)延迟时间的原因是什么?例如,当我编写问题的第一个版本时,它会自行修复。另一方面,今天我花了两个小时编程,但没有解决。我不记得在尚未启用 xdebug 时是否存在问题。我回家后会尝试禁用它。
    【解决方案3】:

    尝试将save_record.php 的内容更改为<?php die(); ?>,看看会发生什么。我怀疑在服务器端处理 save_record 操作时存在某种延迟(可能是 DB 是瓶颈,可能是文件 I/O 等)。

    【讨论】:

    • 刚刚检查过 - 即使使用 <?php die(); ?> 也需要 1 秒以上。
    【解决方案4】:

    save_record.php , 如果你做任何数据库操作,你写了什么代码可能操作需要很多时间你能提供我“save_record.php”的代码,我可以优化响应或者可以解决你的查询

    【讨论】:

    • 请阅读darvids0n的答案并在下方评论。我认为这完全排除了数据库/编码问题的任何影响:)
    猜你喜欢
    • 2021-08-25
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2019-02-28
    • 2012-02-01
    相关资源
    最近更新 更多