物流网站制作怎么做,ppt模板免费下载 素材学生版,怎么根据街景图片找地址,企业管理有限公司经营范围有哪些加快网站的最佳实践
最小化HTTP请求
终端用户响应时间的80#xff05;用于前端。大部分时间都在下载页面中的所有组件#xff1a;图像#xff0c;样式表#xff0c;脚本#xff0c;Flash等。减少组件数量又会减少呈现页面所需的HTTP请求数量。这是更快页面的关键。
组合…加快网站的最佳实践
最小化HTTP请求
终端用户响应时间的80用于前端。大部分时间都在下载页面中的所有组件图像样式表脚本Flash等。减少组件数量又会减少呈现页面所需的HTTP请求数量。这是更快页面的关键。
组合文件 是一种通过将所有脚本合并为一个脚本来减少HTTP请求数量的方法同样也可以将所有CSS合并到一个样式表中。当脚本和样式表因页面而异时将文件组合起来更具挑战性但使发布过程的这一部分能够缩短响应时间。CSS Sprites 是减少图片请求数量的首选方法。将背景图像组合成单个图像并使用CSSbackground-image和background-position属性显示所需的图像片段。
使用内容交付网络
用户与Web服务器的距离对响应时间有影响。在多个地理位置分散的服务器上部署您的内容将使您的网页从用户的角度更快加载。
80-90的最终用户响应时间用于下载页面中的所有组件图像样式表脚本Flash等。这是性能黄金法则。不要从重新设计应用程序体系结构的艰巨任务开始最好先分散您的静态内容。这不仅实现了响应时间的更大缩短而且由于内容交付网络这更容易实现。内容传送网络CDN是分布在多个位置的网络服务器的集合以更高效地向用户传送内容。选择用于将内容递送给特定用户的服务器通常基于网络邻近度的度量。例如选择网络跳数最少的服务器或响应时间最快的服务器。一些大型互联网公司拥有自己的CDN但使用CDN服务提供商如Akamai TechnologiesEdgeCast或level3具有成本效益。对于创业公司和私人网站来说CDN服务的成本可能会很高但随着您的目标受众不断扩大并变得更加全球化CDN是实现快速响应所必需的。在雅虎将静态内容从其应用程序Web服务器转移到CDN如上所述的第三方以及雅虎自己的CDN的属性将最终用户响应时间提高了20甚至更多。切换到CDN是一种相对简单的代码更改可显着提高网站的速度。
添加过期或缓存控制标题
对于静态组件通过设置远期Expires标题实现“永不过期”策略对于动态组件使用适当的Cache-Control标题来帮助浏览器提供有条件的请求
网页设计越来越丰富这意味着更多的脚本样式表图像和Flash在页面中。首次访问您的页面可能需要发出多个HTTP请求但通过使用Expires标头可以使这些组件可缓存。这避免了后续页面浏览中不必要的HTTP请求。过期标头最常用于图像但它们应该用于所有组件包括脚本样式表和Flash组件。浏览器和代理使用缓存来减少HTTP请求的数量和大小使网页加载速度更快。Web服务器使用HTTP响应中的Expires标头告诉客户端可以缓存组件的时间。这是一个很有前途的Expires标题告诉浏览器这个响应将不会在2010年4月15日之前失效。 到期时间2010年4月15日星期四20:00:00 GMT如果您的服务器是Apache请使用ExpiresDefault指令设置相对于当前日期的到期日期。ExpiresDefault指令的这个示例将过期日期设置为从请求开始的10年。 ExpiresDefault“访问加10年”请记住如果您使用远期未来的Expires头文件则只要组件更改就必须更改组件的文件名。经常使这一步成为构建过程的一部分组件的文件名中嵌入了一个版本号例如yahoo_2.0.6.js。只有在用户已经访问过您的网站后使用远期未来的Expires标题才会影响页面浏览。当用户第一次访问您的网站并且浏览器的缓存为空时它对HTTP请求的数量没有影响。因此这种性能改进的影响取决于用户多久访问一次带有缓冲区的页面。一个“准备好的缓存”已经包含了页面中的所有组件。我们在Yahoo!上测试了这一点。并发现带有引导缓存的页面浏览量为75-85。通过使用远期未来的Expires标题您可以增加浏览器缓存的组件数量并在后续页面浏览中重新使用而无需在用户的Internet连接上发送单个字节。
将样式表放置在顶部
将样式表移动到文档HEAD中会使页面显示加载速度更快。这是因为将样式表放在HEAD中允许页面逐步呈现。关注性能的前端工程师希望逐步加载页面; 也就是说我们希望浏览器尽快显示它拥有的任何内容。这对于有很多内容的网页和Internet连接速度较慢的用户尤其重要。为用户提供视觉反馈如进度指示器的重要性已得到充分研究和记录。在我们的例子中HTML页面是进度指示器当浏览器逐渐加载页面时页眉导航栏顶部的徽标等都作为等待页面的用户的视觉反馈。这改善了整体用户体验。将样式表放在文档底部附近的问题是它禁止在许多浏览器包括Internet Explorer中进行渐进式呈现。这些浏览器会阻止渲染以避免在样式更改时重新绘制页面元素。用户停留在查看空白页面。
将脚本放在底部
脚本导致的问题是它们会阻止并行下载。如果您从多个主机名提供图像则可以同时发生两个以上的下载。然而当脚本正在下载时浏览器将不会启动任何其他下载即使是在不同的主机名上。另一个建议是使用延迟脚本。该DEFER属性指示该脚本不包含document.write并且是浏览器可以继续呈现的线索。不幸的是Firefox不支持该DEFER属性。在Internet Explorer中该脚本可能会延迟但不如预期的那么多。如果脚本可以被延期它也可以被移动到页面的底部。这会让你的网页加载速度更快。
避免使用CSS表达式
如果样式属性必须在页面的整个生命周期中动态设置则使用事件处理程序而不是CSS表达式是一种替代方法。如果您必须使用CSS表达式请记住它们可能会被评估数千次并且可能会影响页面的性能。
使用外联JavaScript和css
在现实世界中使用外部文件通常会产生更快的页面因为浏览器会缓存JavaScript和CSS文件。每次请求HTML文档时都会下载HTML文档中内联的JavaScript和CSS。这减少了所需的HTTP请求数量但增加了HTML文档的大小。另一方面如果JavaScript和CSS位于浏览器缓存的外部文件中则HTML文档的大小会减少而不会增加HTTP请求的数量。关键因素是外部JavaScript和CSS组件相对于所请求HTML文档数量的缓存频率。这个因素尽管难以量化但可以使用各种指标进行衡量。如果您的网站上的用户每个会话有多个页面浏览量并且许多网页重复使用相同的脚本和样式表则缓存的外部文件可能带来更大的潜在收益。许多网站都处于这些指标的中间。对于这些网站最好的解决方案通常是将JavaScript和CSS作为外部文件进行部署。首选内联的唯一例外是主页例如雅虎的首页和My Yahoo! 。每个会话只有很少可能只有一个页面视图的主页可能会发现内嵌JavaScript和CSS可以缩短最终用户的响应时间。对于通常是许多页面视图中的第一个的首页有一些技术可以利用内联提供的HTTP请求的减少以及通过使用外部文件实现的缓存优点。其中一种方法是在首页内嵌JavaScript和CSS但在页面加载完成后动态下载外部文件。后续页面将引用应该已经在浏览器缓存中的外部文件。
减少DNS查找
域名系统DNS将主机名映射到IP地址就像电话本将人名映射到他们的电话号码一样。当您在浏览器中输入www.yahoo.com时浏览器联系的DNS解析器会返回该服务器的IP地址。DNS有成本。DNS通常需要20-120毫秒才能查找给定主机名的IP地址。直到DNS查找完成后浏览器才能从此主机名下载任何内容。DNS查找缓存以获得更好的性能。这种高速缓存可以发生在用户的ISP或局域网维护的特殊高速缓存服务器上但也可以在个人用户的计算机上进行高速缓存。DNS信息保留在操作系统的DNS缓存中Microsoft Windows上的“DNS客户端服务”。大多数浏览器都有自己的缓存与操作系统的缓存分开。只要浏览器在自己的缓存中保存了一条DNS记录它就不会打扰操作系统请求记录。当客户端的DNS缓存为空对于浏览器和操作系统时DNS查找的数量等于网页中唯一主机名的数量。这包括页面URL图像脚本文件样式表Flash对象等中使用的主机名。减少唯一主机名的数量可减少DNS查找的数量。减少唯一主机名的数量有可能减少页面中发生的并行下载量。避免DNS查找会缩短响应时间但减少并行下载可能会增加响应时间。我的准则是将这些组件分成至少两个但不超过四个主机名。这在减少DNS查找和允许高度并行下载之间取得了很好的折衷。
缩小JavaScript和CSS
缩小是从代码中删除不必要的字符以缩小其大小从而缩短加载时间的做法。当代码缩小时所有注释都将被删除以及不需要的空白字符空格换行符和制表符。在JavaScript的情况下由于下载文件的大小减小这提高了响应时间性能。两种用于缩小JavaScript代码的流行工具是JSMin和YUI Compressor。YUI压缩机还可以缩小CSS。混淆是一种可应用于源代码的替代优化。它比缩小更复杂因此更容易因迷惑步骤本身而产生错误。在对美国十大网站的调查中缩小比例达到了21而混淆的比例为25。尽管模糊处理的尺寸减小了很多但缩小JavaScript风险较小。除了缩小外部脚本和样式之外内嵌
更多专业前端知识请上
【猿2048】www.mk2048.com