我正在使用CloudFront,很多时候我看到“等待时间”和“接收时间”太高。如何在页面加载中减少“等待时间”和“接收时间”
根据萤火虫文件,等待时间和接收时间是指:
等待 - 等待来自
接收所述服务器的响应 - 读取整个 响应所需/(从高速缓存)时间从(从缓存中读取所需的和/或时间)服务器
我不明白为什么花费这么多时间和我能做些什么来减少时间?
我正在使用CloudFront,很多时候我看到“等待时间”和“接收时间”太高。如何在页面加载中减少“等待时间”和“接收时间”
根据萤火虫文件,等待时间和接收时间是指:
等待 - 等待来自
接收所述服务器的响应 - 读取整个 响应所需/(从高速缓存)时间从(从缓存中读取所需的和/或时间)服务器
我不明白为什么花费这么多时间和我能做些什么来减少时间?
有许多东西可以做。
Expires
,Cache-control
,资产ETag
等gzip
PED版本。合并您的CSS文件到一个,合并您的JS文件到一个运行您的网站通过WebpageTest.org并通过所有的建议。
通过YSlow运行您的网站,并通过所有的建议
过期和其他人都设置。精灵或无精灵与等待时间或接收时间没有直接关系!这些时间可以与sprill图像。雅,但它只会少数。 –
我认为这都是因为CloudFront不在印度。现在它在印度,但现在我没有进入网络开发。 –
这意味着浏览器正在等待服务器处理请求并返回响应。
如果时间很长,通常意味着您的服务器端脚本需要很长时间来处理请求。
服务器端脚本缓慢的原因有很多,例如,长时间运行的数据库查询,处理大文件,深度递归等。
要解决这个问题,您需要优化脚本。除了优化代码本身之外,简单的方法是减少后续请求的执行时间,以实现某种服务器端缓存。
这意味着浏览器正在接收来自服务器的响应。
当这段时间很长时,这意味着您的网络连接速度较慢或接收的数据太大。
为了缩短这个时间,您需要改善网络连接和/或减小响应的大小。
减小响应大小可以通过压缩传送的数据来完成,例如,通过在输出数据之前启用gzip
和/或从输出中删除不必要的字符(如空格)。在可能的情况下,您也可以为返回的数据选择不同的格式。使用JSON而不是XML来处理数据或直接返回HTML。
为了通常减少等待和接收时间可能会实现一些客户端缓存,例如通过设置适当的HTTP标头,如Expires
,Cache-Control
等。然后,浏览器只会发出相当小的请求来检查是否有新版本的数据要获取。
您还可以通过将数据保存在客户端(例如,将其放入本地或会话存储)完全避免请求,而不是在每次需要时从服务器获取数据。
这可能是由于Apache的反向查找设置:http://stackoverflow.com/a/13672919 –