web后端优化知识点

web后端优化——编译器选项、数据库索引和内存管理。
只有10%-20%的最终用户响应时间是花在从web服务器获取HTML文档并传送到浏览器中。80%的时间花在了页面中组件上。
规则1、减少HTTP请求
一个导航栏由五副图片。单击一个图片会将你带到相关的链接。可以通过五个分开的超链接,使用五个分开的图片来实现。如果使用一个图片地图可以更有效率。五个HTTP请求被减少为只有一个HTTP请求。响应时间会降低。
服务器端图片地图将所有点击提交到同一个目标URL,向其传递用户单击的x,y坐标。web应用程序将该x,y坐标映射为适当的操作。
客户端图片地图,可以将用户的点击映射到一个操作,而无需向后端应用程序发送请求。映射通过HTML的MAP标签实现

<img usemap="#map1" border=0 src="/images/imagemap.gif?t=1196816255">
<map name="map1">
    <area shape="rect" coords="0,0,31,31" href="home.html" title="Home">
    <area shape="rect" coords="36,0,66,31" href="gifts.html" title="Gifts">
    <area shape="rect" coords="71,0,101,31" href="cart" title="Cart">
    <area shape="rect" coords="106,0,136,31" href="settings.html" title="Settings">
    <area shape="rect" coords="141,0,171,31" href="help.html" title="Help">
</map>

规则2、使用内容发布网络(CDN)
CDN用于发布静态内容,如图片、脚本、样式表和Flash。提供动态HTML页面会引入特殊的存储需求——数据库连接、状态管理、验证、硬件和OS优化等。

规则3、添加Expires头
现今的web页面包含大量组件,页面的初访者会进行很多HTTP请求,但通过使用一个长久的Expires头,使这些组件可以被缓存。这会在后续的页面浏览中避免不必要的HTTP请求。

规则4、压缩组件
使用gzip编码来压缩HTTP响应包,由此减少网络响应时间。
web服务器通过响应中的Content-Encoding头来通知web客户端。

规则5、将样式表放在顶部
尽量用link标签,少用import标签,import标签使用不当可能会导致白屏问题。
使用Link标签将样式表放在文档HEAD中

规则6、将脚本放在底部
既可以逐步呈现,也可以提高下载的并行度。
脚本可能使用document.write来修改页面内容,因此浏览器会等待,以确保页面能够恰当的布局。

规则7、避免CSS表达式
有些规则用于处理页面加载之后额性能问题,这通常是由CSS表达式引起的问题。
有时候CSS表达式也会影响页面的加载时间。

规则8、使用外部JavaScript和CSS
如果JavaScript和CSS是外部文件,浏览器就能缓存它们,HTML文档的大小减小,而且不会增加HTTP请求的数量。
关键因素是,与HTML文档请求数量相关的、外部JavaScript和CSS组件被缓存的频率。
两种极端情况:一种就是为每个页面提供一组分离的外部文件。这种方式缺点在于每个页面都强制用户使用另外一组外部组件并产生令响应时间变慢的HTTP请求,这种方式对于普通用户只访问一个页面和很少进行跨页访问的网站来说是有意义的;另一种就是创建一个单独的,联合了所有JavaScript的文件,再创建一个包含所有CSS的文件。这只要求用户生成一个HTTP请求,但它增加了用户首次进行页面查看时的下载数据量。这种情况对于那些用户每月会话数量较高、普通用户在一个会话中访问多个不同页面的网站来说是有意义的。
如果网站并不符合这这两种极端情况,最好的答案就是折中,将页面划分成集中页面类型,然后会每种类型创建单独的脚本和样式表。
最后,作出的与JavaScript和CSS外部文件的边界相关的决定影响着组件的重用成程度。重用度高,则将JavaScript和CSS部署到外部文件更好。重用度低,内联更有意义。

规则9、减少DNS查找
通过使用Keep-Alive和较少的域名来减少DNS查找。
减少唯一主机名的数量就可以减少DNS查找的数量。

规则10、精简JavaScript
精简JavaScript代码的最流行工具是JSMin,移除不必要的空白。
85KB-不进行JSMin和gzip压缩的JavaScript大小;
68KB-只进行JSMin的JavaScript大小(节省了21%);
23KB-只进行gzip压缩的JavaScript大小(节省了73%);
19KB-进行JSMin和gzip压缩的JavaScript大小(节省了78%);
精简CSS能够带来的节省通常要小于精简JavaScript。最大的潜能在于优化CSS——合并相同的类,移除不使用的类等。

规则11、避免重定向
重定向用于将用户从一个URL重新路由到另一个URL。通常由301和302两种。对HTML文档进行重定向。
重定向延迟了整个HTML文档的传输。在HTML文档之前,页面中不会呈现出任何东西,也没有任何组件会被下载。在用户和HTML文档之间插入重定向延迟了页面中的所有东西。

规则12、移除重复脚本
确保脚本只被包含一次。

规则13、配置ETag
减少呈现页面时所必须的HTTP请求的数量是加速用户体验的最佳方式。可通过最大化浏览器缓存组件的能力来实现这一目标,但当网站被宿主在多于一台服务器上是,ETag头可能会阻碍缓存。
实体标签(ETag)是web服务器和浏览器用于确认缓存组件的有效性的一种机制。
配置会或移除ETag

规则14、使用AJAX可缓存
确保AJAX请求遵守性能指导,尤其应具有长久的Expires头

析构十大网站
页面大小、响应时间、YSlow等级
页面大小和响应时间有着很强的正比关系,比例系数是0.94。
高的YSlow等级表示页面构建良好,它既快又小。低的YSlow等级页面可能又慢又大。
YSlow等级和响应时间及页面大小是成反比的。

最后推荐一个公众号,一枚IT技术人成长路上关于生活和职场的思考,欢迎书友们前来交流和分享心得

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值