2013-10-05 80 views
6

我正在使用CloudFront,很多时候我看到“等待时间”和“接收时间”太高。如何在页面加载中减少“等待时间”和“接收时间”

根据萤火虫文件,等待时间和接收时间是指:

等待 - 等待来自

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

我不明白为什么花费这么多时间和我能做些什么来减少时间?

enter image description here

+0

这可能是由于Apache的反向查找设置:http://stackoverflow.com/a/13672919 –

回答

2

有许多东西可以做。

  1. 设置相应的头ExpiresCache-control,资产
  2. 用户精灵在可能的ETag
  3. 使用gzip PED版本。合并您的CSS文件到一个,合并您的JS文件到一个

运行您的网站通过WebpageTest.org并通过所有的建议。

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

+1

过期和其他人都设置。精灵或无精灵与等待时间或接收时间没有直接关系!这些时间可以与sprill图像。雅,但它只会少数。 –

+0

我认为这都是因为CloudFront不在印度。现在它在印度,但现在我没有进入网络开发。 –

1

等待

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

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

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

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

接收

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

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

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

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

通常

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

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

相关问题