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

时间:2013-10-05 14:04:16

标签: performance firebug amazon-cloudfront pagespeed

我正在使用CloudFront,很多时候我看到等待时间和接收时间太高了。

根据Firebug文件,等待时间和接收时间意味着:

  

等待 - 等待服务器的响应

     

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

我不明白为什么需要这么多时间以及我可以做些什么来缩短时间?

enter image description here

2 个答案:

答案 0 :(得分:4)

你可以做很多事情。

  1. 设置适当的标题ExpiresCache-controlETag
  2. 使用资产的gzip ped版本
  3. 尽可能使用用户精灵。将您的CSS文件合并为一个,将您的JS文件合并为一个
  4. 通过WebpageTest.org运行您的网站,并完成所有建议。

    通过YSlow运行您的网站并完成所有建议

答案 1 :(得分:1)

等待

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

当时间很长时,通常意味着服务器端脚本需要很长时间来处理请求。

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

要解决此问题,您需要优化脚本。除了优化代码本身之外,一种简单的方法是减少后续请求的执行时间,即实现某种服务器端缓存。

接收

这意味着浏览器正在接收来自服务器的响应。

当时间很长时,它意味着您的网络连接速度很慢或接收的数据太大。

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

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

一般

为了减少等待和接收时间,您可以实现一些客户端缓存,例如通过设置适当的HTTP标头,如ExpiresCache-Control等,然后浏览器只会发出相当小的请求,以检查是否有新版本的数据要提取。

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