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

HTML5 Canvas的性能提高技巧經驗分享

使用緩存技術實現預繪制,減少重復繪制Canvs內容
很多時候我們在Canvas上繪制與更新,總是會保留一些不變的內容,對于這些內容
應該預先繪制緩存,而不是每次刷新。
直接繪制代碼如下:
 

復制代碼 代碼如下:
context.font="24px Arial";
context.fillStyle="blue";
context.fillText("Please press <Esc> to exit game",5,50);
requestAnimationFrame(render);


使用緩存預繪制技術:

復制代碼 代碼如下:
function render(context) {
context.drawImage(mText_canvas, 0, 0);
requestAnimationFrame(render);
}
function drawText(context) {
mText_canvas = document.createElement("canvas");
mText_canvas.width = 450;
mText_canvas.height = 54;
var m_context = mText_canvas.getContext("2d");
m_context.font="24px Arial";
m_context.fillStyle="blue";
m_context.fillText("Please press <Esc> to exit game",5,50);
}


使用Canvas緩存繪制技術的時候,一定記得緩存Canvas對象大小要小于實際的Canvas 大小。盡量把繪制直線點的操作放在一起,而且盡量一次繪制完成,一個不好的代碼如下:

復制代碼 代碼如下:
for (var i = 0; i < points.length - 1; i++) {
var p1 = points[i];
var p2 = points[i+1];
context.beginPath();
context.moveTo(p1.x, p1.y);
context.lineTo(p2.x, p2.y);
context.stroke();
}


修改以后性能較高的代碼如下:

復制代碼 代碼如下:
context.beginPath();
for (var i = 0; i < points.length - 1; i++) {
var p1 = points[i];
var p2 = points[i+1];
context.moveTo(p1.x, p1.y);
context.lineTo(p2.x, p2.y);
}
context.stroke();


避免不必要的Canvas繪制狀態頻繁切換,一個頻繁切換繪制style的例子如下:

復制代碼 代碼如下:
var GAP = 10;
for(var i=0; i<10; i++) {
context.fillStyle = (i % 2 ? "blue" : "red");
context.fillRect(0, i * GAP, 400, GAP);
}


避免頻繁切換繪制狀態,性能更好的繪制代碼如下:

復制代碼 代碼如下:
// even
context.fillStyle = "red";
for (var i = 0; i < 5; i++) {
context.fillRect(0, (i*2) * GAP, 400, GAP);
}
// odd
context.fillStyle = "blue";
for (var i = 0; i < 5; i++) {
context.fillRect(0, (i*2+1) * GAP, 400, GAP);
}


繪制時,只繪制需要更新的區域,任何時候都要避免不必要的重復繪制與額外開銷。對于復雜的場景繪制使用分層繪制技術,分為前景與背景分別繪制。定義Canvas層的
HTML如下:

復制代碼 代碼如下:
<canvas id="bg" width="640" height="480" style="position: absolute; z-index: 0">
</canvas>
<canvas id="fg" width="640" height="480" style="position: absolute; z-index: 1">
<SPAN style="FONT-SIZE: 18px"></canvas>
</SPAN>


如果沒有必要,要盡量避免使用繪制特效,如陰影,模糊等。

避免使用浮點數坐標
繪制圖形時,長度與坐標應選取整數而不是浮點數,原因在于Canvas支持半個像素繪制會根據小數位實現插值算法實現繪制圖像的反鋸齒效果,如果沒有必要請不要選擇浮點數值。

清空Canvas上的繪制內容
context.clearRect(0, 0, canvas.width,canvas.height)
但是其實在Canvas還有一種類似hack的清空方法:
canvas.width = canvas.width;
也可以實現清空canvas上內容的效果,但是在某些瀏覽器上可能不支持。

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

相關文檔推薦

這篇文章主要介紹了有關HTML5頁面在iPhoneX適配問題,需要的朋友可以參考下
本篇文章主要介紹了html5中canvas圖表實現柱狀圖的示例,本文使用canvas來實現一個圖表,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
Adobe公司出品的多媒體處理軟件產品線較多,涵蓋了音視頻編輯、圖像處理、平面設計、影視后期等領域。這篇文章主要介紹了Adobe Html5 Extension開發初體驗圖文教程,非常不錯,需要的朋
這篇文章主要介紹了基于HTML5的WebGL經典3D虛擬機房漫游動畫,需要的朋友可以參考下
這篇文章主要介紹了手機端用rem+scss做適配的詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本篇文章主要介紹了canvas 實現 github404動態效果的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 工业插头-工业插头插座【厂家】-温州罗曼电气 | 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 食安观察网 | 热工多功能信号校验仪-热电阻热电偶校验仿真仪-金湖虹润仪表 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 合肥地磅_合肥数控切割机_安徽地磅厂家_合肥世佳电工设备有限公司 | 苏州教学设备-化工教学设备-环境工程教学模型|同科教仪 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司| 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | 脉冲除尘器,除尘器厂家-淄博机械| ZHZ8耐压测试仪-上海胜绪电气有限公司| 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 |