如何减少页面加载时的“等待时间”和“接收时间”

11

我正在使用CloudFront,但经常看到等待时间和接收时间过长。

根据Firebug文档,等待时间和接收时间的含义如下:

等待 - 等待来自服务器的响应

   

接收 - / (来自缓存) 从服务器读取整个响应所需的时间(和/或从缓存中读取所需的时间)

我不理解为什么会花费这么长的时间以及我可以做什么来减少时间?

enter image description here


这可能是由于Apache的反向查找设置造成的:https://dev59.com/Bmgu5IYBdhLWcg3w9r2X#13672919 - Michael Parker
2个回答

6
有多种方法可以优化网站性能。
  1. 设置适当的头信息,如ExpiresCache-controlETag等。
  2. 使用压缩版本的资源文件。
  3. 尽可能使用精灵图。将CSS文件合并为一个文件,将JS文件合并为一个文件。
请通过WebpageTest.org测试您的网站,并查看所有建议。
请通过YSlow测试您的网站,并查看所有建议。

1
过期时间和其他都已设置。精灵或无精灵与等待时间或接收时间没有直接关系!这些时间可以与有精灵的图像一起使用。是的,但它会比几个更慢一次。 - Satya Prakash
我认为这一切都是因为CloudFront不在印度造成的。现在它已经进入印度,但是现在我不从事Web开发了。 - Satya Prakash

5

等待

这意味着浏览器正在等待服务器处理请求并返回响应。

如果等待时间很长,通常意味着你的服务器端脚本需要花费很长时间来处理请求。

服务器端脚本运行缓慢的原因有很多,例如长时间运行的数据库查询、处理大型文件、深度递归等。

为了解决这个问题,你需要优化你的脚本。除了优化代码本身之外,一种简单的方式是实现某种类型的服务器端缓存以减少后续请求的执行时间。

接收

这表示浏览器正在接收来自服务器的响应。

如果接收时间很长,则可能是因为你的网络连接较慢或者接收到的数据过大。

为了缩短这个时间,你需要改善网络连接和/或减小响应大小。

可以通过压缩传输的数据(例如启用gzip)和/或在输出数据之前删除不必要的字符(如空格),来减少响应大小。在可能的情况下,你还可以选择返回不同格式的数据,例如使用 JSON 而不是 XML 来传输数据或直接返回 HTML。

总体

为了通常缩短等待和接收时间,你可以通过设置适当的 HTTP 头(如ExpiresCache-Control等)来实现某些客户端缓存。这样,浏览器只会进行相对较小的请求来检查是否有可获取的新数据版本。

你还可以通过将数据保存在客户端上(例如将其放入本地或会话存储中)而不是每次从服务器获取它,来完全避免请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接