-1

假设我有一些脚本 myScript.js 使用 jQuery.get() 从服务器检索一小段数据。还假设我的 ping 时间在 1500 毫秒时很糟糕。使用 jQuery.get 是否有效地将 ping 时间加倍至 3000 毫秒?

还是有允许某种并行处理的异步魔法?我问的原因是我们使用 jQuery.get() 相当自由,我想知道这是否是我们需要考虑优化的一个领域。

编辑:与我是否可以以某种方式重新排列以在初始加载时加载所有数据并完全绕过 jQuery 相比,翻倍

4

2 回答 2

2

Ping 时间通常与服务器相关,而 jQuery 是所有客户端。所以答案是否定的,它不会影响您的 ping 时间。

如果您询问使用 jQuery.get(或一般的 ajax)是否会使您的客户端变慢,那么答案是肯定的,如果您尝试处理很多,那么您拥有的 JS 越多,通常客户端越慢因为几乎所有东西都在同一个线程上运行。但是,默认情况下,这些 ajax 请求是异步的,因此在服务器发回响应之前,线程通常处于空闲状态。

我建议您在 Chrome 中打开您的页面并使用开发人员工具查看网络使用情况。这将准确地告诉您在服务器上“等待”了多少时间。

于 2012-05-27T05:58:24.003 回答
0

如果您分解一个请求,您可以了解可以预期的延迟。

每个 TCP 连接都以三次握手开始:

  • SYN(客户端到服务器)
  • SYN-ACK(服务器到客户端)
  • ACK(客户端到服务器)

如果请求适合一个 tcp 数据包的大小(约 1500 字节),则可以将其作为握手的最后一部分发送以优化网络流量。

响应也可能仅在一个数据包中发送(取决于其大小)。一旦发送,双方都会进行连接终止,除非连接保持活动状态,否则需要两对 FIN-ACK 序列。此时我不完全确定服务器是否可以将 FIN 与最后一个响应数据包一起发送。

因此,在最好的情况下,您可以预期至少 2 倍的 ping 时间,但更有可能是 3-4 倍。

于 2012-05-27T07:07:22.937 回答