一步提供整个网页

时间:2014-03-08 20:42:10

标签: javascript apache browser web nginx

目前,如果一个页面有2个图像和2个JavaScript文件,则浏览器会进行5次调用。当然,你可以保持活力和流水线,但它仍然有5个网络电话。有没有办法发送一个zip文件,让浏览器解析zip或类似的包含文件中的资源?

5个电话只是一个例子。在大型网站中,每页30-50个电话并不罕见。此外,内嵌没有帮助,因为您的后续页面将引用单独的js / css / image / icon文件。所以这些请求应该从缓存中提供。

网络通话很重要,特别是如果您在手机上运行混合应用程序,并且用户位于东海岸,您的数据中心位于西海岸或更糟糕,您的用户位于欧洲,您在西海岸拥有数据中心等

2 个答案:

答案 0 :(得分:1)

如果您愿意购买SSL证书或已经拥有SSL证书,我建议您使用SPDY,它可以在nginx-extras包中找到,启用它只需将其添加到监听行< / p>

listen 443 spdy;

修改

你可以做的其他事情很少,对于JS和CSS文件,有很多框架工作可以将它们编译成1个单独的文件,你可以手动完成,也可以缩小过程中的文件,也可以看看预处理器像lesscss一样,它们让我的生活变得更轻松,你可能会喜欢使用它。

对于图像,你实际上做不了多少,除非它们是小图标文件,那么你应该创建一个image sprite,如果可能的话也尝试考虑使用字体,比如{{3} }或font-awsome,因为这些是字体,您可以轻松设置其大小和颜色。

还要确保打开gzip,如果他们说gzip已启用,请检查响应标头。

答案 1 :(得分:0)

如果您想要快速加载页面,请密切注意浏览器在呈现页面之前需要进行的往返次数。每次旅行是20ms? 30毫秒,40毫秒?跨越美国50ms的1/2路?从美国东部时间到太平洋标准时间 - 80毫秒....是的,它加起来。

我发现减少数量“获取”和“304未修改”的最佳方法是将所有javascript文件,图像和CSS缓存1年。

浏览器第一次需要资源时,会进行一系列的往返行程......无法解决这个问题。第二次需要资源 - 从0ms的缓存中提供 - 甚至不会显示在Web服务器日志文件中。

您想要设置max-age并过期到1年。这是我在apache中的表现: Apache: set max-age or expires in .htaccess for directory