pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

HTML5游戲開發 之 循環的控制(3)

7) 改進性能 RequestAnimationFrame確實是實現動畫不可或缺的利器,但是不可以過度的使用。尤其是和一些漸變性的事件相關聯的動畫,比如,Chrome Web Store首頁利用垂直滾軸不斷顯示頁面內容
       7) 改進性能

       RequestAnimationFrame確實是實現動畫不可或缺的利器,但是不可以過度的使用。尤其是和一些漸變性的事件相關聯的動畫,比如,Chrome Web Store首頁利用垂直滾軸不斷顯示頁面內容。下面給出一個不太好的例子:

  1. function onScroll() {
  2. update();
  3. }
復制代碼
  1. function update() {

  2. // assume domElements has been declared
  3. // by this point :)
  4. for(var i = 0; i < domElements.length; i++) {

  5. // read offset of DOM elements
  6. // to determine visibility - a reflow

  7. // then apply some CSS classes
  8. // to the visible items - a repaint

  9. }
  10. }
復制代碼
  1. window.addEventListener(‘scroll’, onScroll, false);
復制代碼

       上面這個例子,每次scroll事件的時候,都調用RequestAnimationFrame,雖然瀏覽器會量力而行的執行動畫渲染,但是有兩個沖突的地方,成為了動畫渲染的性能瓶頸。首先,scroll事件調用的頻率,遠遠大約每秒60幀。也就是說,瀏覽器會緩存大量的RequestAnimationFrame事件,導致很多的update函在做無用功。其次,在每次執行RequestAnimationFrame的時候,里面對dom元素的屬性進行了修改,引起了很多的Reflow和Repaint事件,顯然完成所有的Reflow和Repaint時間的遠遠超過16ms。

       為了解決第一個問題,首先要將scroll和RequestAnimaitonFrame函數分離,修改后的代碼如下:

  1. var latestKnownScrollY = 0;
  2. function onScroll() {
  3. latestKnownScrollY = window.scrollY;
  4. }

  5. function update() {
  6.   requestAnimationFrame(update);
  7.   var currentScrollY = latestKnownScrollY;

  8.   // read offset of DOM elements
  9.   // and compare to the currentScrollY value
  10.   // then apply some CSS classes
  11.   // to the visible items
  12. }

  13. // kick off
  14. requestAnimationFrame(update);
復制代碼

       上面的代碼,scroll事件僅負責將最新的窗口位置,賦值給一個變量。這樣的話,可以避免大量的RequestAnimationFrame事件被緩存,從而真正讓RequestAnimationFrame按照瀏覽器的能力,進行動畫渲染。

       對于第二個問題,唯一的辦法,盡量的減少Repaint和Reflow的事件。道理雖然簡單,但是優化難度很大,要求讀者對于Dom的渲染的每個函數都非常熟悉。下面列出幾篇文章,僅供參考:

       ClassList for great good.

       Breakdown of repaint.

       Learning from Twitter

       (未完待續)

       上文:

       HTML5游戲開發 之 循環的控制(2)

       HTML5游戲開發 之 循環的控制(1)

        HTML5 游戲開發 之 資源加載篇(2)

        HTML5 游戲開發 之 資源加載篇(1)


【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
本文主要內容有:框架與組件、構建生態、開發技巧與調試、html、css與重構、native/hybrid/桌面開發、前端/H5優化、全棧/全端開發、研究實驗、數據分析與監控、其它軟技能、前端技術網
主站蜘蛛池模板: 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 脉冲除尘器,除尘器厂家-淄博机械 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 环氧树脂地坪_防静电地坪漆_环氧地坪漆涂料厂家-地壹涂料地坪漆 环球电气之家-中国专业电气电子产品行业服务网站! | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 深圳市人通智能科技有限公司| 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 |