改善html5网页性能.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1简介

HTML5为增强web应用的视觉效果(特别是动画)方面提供了一件利器,但也同时带

来了。尽管事实上这些并不都是新出现的,不信可以问问,比如falsh开发者,

以前是怎样克服同类问题的。

无论如何,制作动画时特别要注意的是,人们总是希望动画能更流畅。必须认识到,在

落在中间的动画效果更好。人们讨厌结结巴巴的动画。

本文主要为加强应用体验提供工具和技术指导。

2目的

我们并不使用HTML5来开发超牛超炫的可视作品。

但如果觉得性能有提升的必要,请阅读本文看看有关改进的点点滴滴;当然也可以预先

了解一些,提高工作效率。

3HTML5视觉保真

3.1硬件加速

硬件加速对于浏览器的整体渲染性能来说,是个重要的里程碑。通常的解决方案,是将

原先全部由主CPU承担的工作,改由计算机图形处理单元(GPU)承担一部分。这可以提

高移动设备的整体性能,减少资源争用。

页面以下方面可硬件加速:

常规布局合成

CSS3过渡效果(transitions)

CSS33D变形(3Dtransforms)

画布绘图

WebGL3D绘图

2/15

对画布、WebGL绘图的加速特性,也许只对某些特定应用才起作用,但前面的另外三

条应有助于所有应用的提速。

什么可以加速?

GPU加速通过将明确定义的、指定的任务分配给特定硬件处理来完成。通常来说,网

页被分解成多个“层”,这些“层”对被加速的页面来说是不变的。这些层使用传统的渲染

途径来渲染,GPU随后被用来将层合并成整个页面、应用特效。另一种可能的结果,是屏

幕上的动画对象启动时并不需要一个单一的布局。

需要把可以应用GPU加速的部分剥离出来,便于渲染引擎识别。

例如:

需要在浏览器中显示一个元素从左至右移动的效果。传统方法是使用定时器,每隔

N毫秒修改一下“left”属性。

varelem=document.getElementById(domanim),left=0;functionmove(){left+=4;

elem.style.left=left+px;returnleft430;}elem.addEventListener(click,functionloop()

{move()setTimeout(loop,1000/60);},false);

这段产生了动画,但其实浏览器并不清楚这段内容是被用来产生流畅动画的。看看

使用CSS3的过渡效果如何获得同样的外观吧:

#transanim{-moz-transition:all2sease-out;-o-transition:all2sease-out;-webkit-transition:all

2sease-out;transition:all2sease-out;}

varelem2=document.getElementById(transanim);elem2.addEventListener(click,function

loop(){elem2.style.left=430px;},false);

现在可以简单地定义一下元素的最终位置,就可以让浏览器来在指定的时间段内,向着

最终目标完成动画。

浏览器如何完成动画,与开发者无关。反过来,这也意味着浏览器有能力使用诸如GPU

加速特性来达成特定的目标。

3.2CSS魔弹

目前,多数浏览器如果得到暗示,某个HTML元素将会因使用GPU加速而获益,

它们就会照做。其中最强的暗示莫过于对元素执行3D变换。也许你现在还用不上3D变换,

但也能从中受益。简单地做以下变换:

-webkit-transform:translateZ(0);

请注意,这一变换不保证改善性能。也许只是狂飚一下GPU,费掉电量,性能没

有任何变化。所以,除非使用能带来真正的性能收益,请慎用。

当选取用于变换的元素时,请选择那些页面的逻辑主体。最好选那

文档评论(0)

152****0921 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档