Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如何加速浏览器已经缓存了大部分页面资源的网站_Performance_Web Applications - Fatal编程技术网

Performance 如何加速浏览器已经缓存了大部分页面资源的网站

Performance 如何加速浏览器已经缓存了大部分页面资源的网站,performance,web-applications,Performance,Web Applications,我想提高网站的页面加载时间。它是一个web应用程序(比如web邮件),用户相对较少,使用该站点的时间较长 由于几乎所有页面请求都来自已经使用过该站点的用户,因此在以前的请求期间,浏览器将缓存图像、css和外部javascript资源。由于浏览器不需要再次请求这些资源,以下性能提示不会提高响应速度,这是对的吗 CSS精灵 使用替代域名并行下载图像 Javascript包含在页面底部的位置 是否有人有任何性能提示可以提高此类网站的响应时间。这是加速web应用程序的一个很好的资源: 为了从客户端

我想提高网站的页面加载时间。它是一个web应用程序(比如web邮件),用户相对较少,使用该站点的时间较长

由于几乎所有页面请求都来自已经使用过该站点的用户,因此在以前的请求期间,浏览器将缓存图像、css和外部javascript资源。由于浏览器不需要再次请求这些资源,以下性能提示不会提高响应速度,这是对的吗

  • CSS精灵
  • 使用替代域名并行下载图像
  • Javascript包含在页面底部的位置

是否有人有任何性能提示可以提高此类网站的响应时间。

这是加速web应用程序的一个很好的资源:


为了从客户端缓存中获益,请确保按照这些实践说明发送“Expires”和“Cache Control”头。

我认为您需要进行一些分析。首先确定您希望支持的所有浏览器是否都将缓存您希望它们缓存的内容(如果需要,请在请求期间检查您的网络流量)。有些浏览器有有趣的缓存规则。如果这里有任何问题,请解决它们

接下来,检查每个请求正在检索的内容。如果您的HTML/CSS/Javascript不必要地冗长,则需要发送更多数据,需要客户端处理更多数据


查看服务器端、网络端和客户端的计时。查看服务器服务静态文件需要多长时间,以及脚本运行多长时间。查看服务器和客户端之间的往返时间是否合理较短(在某些情况下,您可能需要重新定位服务器)。另外,请确保页面在客户端呈现时不会太慢,无论是由于脚本速度慢、内容过多还是呈现复杂。

要真正了解客户端的情况,您需要使用Wireshark(或等效工具)来观察发生了什么传输。这将准确地告诉您该客户端在第一次和后续请求中获取的内容,以及该客户端接收哪些请求需要很长时间。

您要说的是,该网站已经在客户端缓存中,因此在他们一次性下载之后,随后的加载时间可以忽略不计,您如何在那里进行优化

在这种情况下,我可以提出一些建议。首先,减少对服务器的HTTP请求数量。这意味着:

  • 如果客户想进入服装>男士>鞋子,请使用弹出菜单帮助他们更快到达(当然,除非你想强制选择风景路线)
  • 在同一个HTTP请求中加载所有内容(重复用户一次性点击),然后用户JS根据需要隐藏/显示信息
  • 其次,您可以使用AJAX,这样客户机就不必在每次从服务器收到响应时重新绘制整个屏幕

    第三,您可以设置高缓存过期时间,这样客户端就不会很快继续检查更新。这将进一步优化现有的缓存层

    顺便说一句,即使已经缓存了图像,我仍然认为将它们托管在不同的服务器上会带来更好的性能。原因是浏览器限制了从一个域并行下载的数量,它仍然需要检查图像是当前的还是过期的(使用HEAD请求)。因此,在多个域上托管它们将使任务的这一部分更快。不过,这可能是错误的,而且浏览器可能会以不同的方式处理此特定场景