我正在使用CloudFront,很多时候我看到等待时间和接收时间太高了。
根据Firebug文件,等待时间和接收时间意味着:
等待 - 等待服务器的响应
接收 - /(来自缓存)读取整个所需的时间 来自服务器的响应(和/或从缓存中读取所需的时间)
我不明白为什么需要这么多时间以及我可以做些什么来缩短时间?
答案 0 :(得分:4)
你可以做很多事情。
Expires
,Cache-control
,ETag
等gzip
ped版本通过WebpageTest.org运行您的网站,并完成所有建议。
通过YSlow运行您的网站并完成所有建议
答案 1 :(得分:1)
这意味着浏览器正在等待服务器处理请求并返回响应。
当时间很长时,通常意味着服务器端脚本需要很长时间来处理请求。
服务器端脚本速度慢的原因有很多,例如:长时间运行的数据库查询,处理大文件,深度递归等。
要解决此问题,您需要优化脚本。除了优化代码本身之外,一种简单的方法是减少后续请求的执行时间,即实现某种服务器端缓存。
这意味着浏览器正在接收来自服务器的响应。
当时间很长时,它意味着您的网络连接速度很慢或接收的数据太大。
为了缩短这段时间,您需要改善网络连接和/或减小响应的大小。
通过压缩传输的数据可以减少响应大小。通过在输出数据之前启用gzip
和/或从输出中删除不必要的字符(如空格)。您也可以在可能的情况下为返回的数据选择不同的格式,例如:使用JSON代替XML来获取数据或直接返回HTML。
为了减少等待和接收时间,您可以实现一些客户端缓存,例如通过设置适当的HTTP标头,如Expires
,Cache-Control
等,然后浏览器只会发出相当小的请求,以检查是否有新版本的数据要提取。
您还可以通过在客户端保存数据(例如,将其放入本地存储或会话存储)而不是每次需要时从服务器获取数据来完全避免请求。