一次服务整个网页

serve entire web page in one hop

本文关键字:网页 服务 一次      更新时间:2023-09-26

目前,如果一个页面有2张图片和2个JavaScript文件,浏览器会进行5次调用。当然,您可以使用keep alive和pipelining,但它仍然需要5个网络调用。是否有一种方法可以发送一个zip文件,并让浏览器解析zip或类似的压缩文件中的资源?

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

网络呼叫很重要,特别是如果你的手机上运行一个混合应用程序,用户在东海岸而你的数据中心在西海岸或者更糟,你的用户在欧洲而你的数据中心在西海岸等等。

如果你愿意购买SSL证书或者已经拥有SSL证书,我建议使用SPDY,它在nginx-extras包中可用,要启用它,只需将其添加到listen行

listen 443 spdy;

编辑:

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

至于图像,你不能做太多,除非它们是小图标文件,那么你应该创建一个图像精灵,也试着考虑使用字体代替,如font-awsome或glyphicon,因为这些字体你可以轻松设置它们的大小和颜色。

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

如果您希望快速加载页面,请密切关注浏览器在呈现页面之前需要进行的往返次数。每次行程是20毫秒?30 ms, 40毫秒?横跨半个美国50毫秒?从EST到PST- 80ms....是啊,加起来。

我发现减少"get"answers"304未修改"数量的最佳方法是缓存所有javascript文件,图像和css 1年。

浏览器第一次需要资源时,它会进行一堆往返…没办法。第二次它需要这个资源——在0毫秒内从缓存中提供——甚至不会显示在webserver的日志文件中。

您要将最大年龄和过期时间设置为1年。下面是我在apache中做的:Apache:设置.htaccess目录

的最大过期时间