我想改善网站的页面加载时间。它是一个Web应用程序(想象类似于Web邮件),只有相对较少的用户长时间使用该站点。
由于几乎所有页面请求都来自已使用该站点的用户,因此在以前的请求期间,浏览器将缓存图像,css和外部javascript资源。由于浏览器不需要再次请求这些资源,我是否正确以下性能提示不会给我任何响应速度的改进?:
是否有人有任何可能会改善此类网站响应时间的性能提示。
答案 0 :(得分:2)
这是加速Web应用程序的好资源: Yahoo: Best Practices for Speeding Up Your Web Site
为了从客户端缓存中受益,请确保按照这些做法发送“Expires”和“Cache-Control”标头。
答案 1 :(得分:1)
您所说的是该网站已经在客户端缓存中,所以在他们一次性下载后,后续加载时间可以忽略不计,您如何优化?
在这种情况下,我可以提出一些建议。首先,减少对服务器的HTTP请求数。这意味着:
其次,您可以使用AJAX,因此每次响应来自服务器时,客户端都不必重新绘制整个屏幕。
第三,您可以设置高缓存到期时间,以便客户端不会在短时间内继续检查更新。这将进一步优化已存在的缓存层。
顺便说一下,即使图像已经被缓存,我仍然认为在不同的服务器上托管它们会带来更好的性能。原因是浏览器限制了来自一个域的并行下载数量,它仍然需要检查图像是当前还是过期(使用HEAD请求)。因此,将它们托管在多个域上将使该任务的一部分更快。虽然这里可能有问题,浏览器可能会以不同的方式处理这种特殊情况。答案 2 :(得分:0)
我认为你需要做一些分析。首先确定您希望支持的所有浏览器是否实际缓存您希望它们缓存的内容(如果需要,请检查请求期间的网络流量)。有些浏览器有一些有趣的缓存规则。如果这里有任何问题,请修复它们!
接下来,检查每个请求正在检索的内容。如果您的HTML / CSS / Javascript不必要地冗长,则需要发送更多数据,并为客户端处理更多数据。
查看服务器端,网络端和客户端的时序。查看服务器提供静态文件所需的时间以及脚本运行的时间。查看服务器和客户端之间的往返时间是否相当低(在某些情况下,您可能希望重新定位服务器)。还要确保您的页面在客户端渲染速度不慢,无论是由于脚本速度慢,内容过多还是复杂渲染。
答案 3 :(得分:0)
要真正了解您的客户发生了什么,您希望使用Wireshark(或等效的)来观察发生的转移。这将准确地告诉您客户端在第一次和后续请求中获取的内容,以及哪些请求需要很长时间才能收到客户端。