一次服务整个网页
serve entire web page in one hop
目前,如果一个页面有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目录
- 如何使用WCF服务和javascript表单post上传.doc文件
- 监视函数从服务返回不起作用,但作用域函数起作用
- 通过Magento的网络服务检索运费
- 如何防止网页加载后自动启动功能
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何使用Node.js最有效地解析网页
- 刷新后保留对网页的更改
- AJAX不会在文件上传后重定向到网页-POST方法
- 使用谷歌网站翻译器自动翻译网页
- 使用angular.js问题的JavaSpringREST服务
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- 仅重新加载网页的一部分
- 访问HTTPS WCF服务,HTML,Javascript,服务和托管在不同域上的网页 - CORS
- 使用定位服务的移动网页-当定位服务关闭时,为用户提供设置的本地链接
- Node.Js在提供网页服务时,究竟在哪里?
- 如何使用asp.net web服务来刷新asp.net 4.0网页的一小部分,而无需编辑任何其他部分
- asp.net网页web服务只能在本地机器上运行
- 是否可以创建一个服务来动态操作网页DOM
- 一次服务整个网页