亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

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

2024-08-26 00:16:17
字體:
來源:轉載
供稿:網友

點評:本文為大家講解下使用緩存技術實現預繪制,減少重復繪制Canvs內容以及避免使用浮點數坐標等來提高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>
</canvas>
<canvas>
<SPAN></canvas>
</SPAN>


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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品亚洲一区二区三区| 欧美日韩国产综合视频在线观看中文| 亚洲xxxx妇黄裸体| 国产精品狼人色视频一区| 成人动漫网站在线观看| 日韩av免费网站| 中文字幕一区日韩电影| 国内免费精品永久在线视频| 中文字幕一区二区三区电影| 亚洲аv电影天堂网| 91高潮精品免费porn| 亚洲国产精品久久精品怡红院| 成人情趣片在线观看免费| 日韩av网址在线观看| 欧美猛交ⅹxxx乱大交视频| 国产日产欧美a一级在线| 亚洲女人被黑人巨大进入al| 亚洲精品网站在线播放gif| 亚洲高清一区二| 性夜试看影院91社区| 欧美精品成人91久久久久久久| 欧美日韩日本国产| 久久成人人人人精品欧| 亚洲三级黄色在线观看| 国产精品91在线观看| 精品久久中文字幕久久av| 97精品国产97久久久久久| 九九热这里只有在线精品视| 精品久久久91| 亚洲一区二区三区成人在线视频精品| 久久久久这里只有精品| 97在线观看视频| 最新日韩中文字幕| 久久久精品影院| 亚洲欧洲在线观看| 精品中文字幕乱| 2019亚洲男人天堂| 日韩av片电影专区| 欧美日韩电影在线观看| 国产91成人video| 黄色成人av网| 俺也去精品视频在线观看| 57pao成人永久免费视频| 国产精品久久久久久久久久久久久久| 久久久亚洲网站| 久久久久久久久久久免费| 欧美激情第一页xxx| 中文字幕免费精品一区高清| 欧美日韩国产在线看| 一本一道久久a久久精品逆3p| 成人激情免费在线| 国产精品啪视频| 91精品国产乱码久久久久久久久| 亚洲sss综合天堂久久| 国产精品成人观看视频国产奇米| 97在线视频精品| 欧美另类第一页| 91欧美精品午夜性色福利在线| 国产日韩在线视频| 久久精品久久精品亚洲人| 国产精品自拍小视频| 亚洲天堂网站在线观看视频| 国产精品6699| 欧美激情一区二区久久久| 中文字幕在线日韩| 国内外成人免费激情在线视频网站| 成人在线免费观看视视频| 亚洲激情中文字幕| 国产精品美女999| 色系列之999| 亚洲精品电影网在线观看| 高清一区二区三区四区五区| 91综合免费在线| 国产精品尤物福利片在线观看| 亚洲欧美日韩精品久久亚洲区| 欧美精品在线播放| 欧美日韩电影在线观看| 啊v视频在线一区二区三区| 一本色道久久综合亚洲精品小说| 日韩精品极品视频免费观看| 中文字幕亚洲图片| 97视频免费看| 欧美区二区三区| 国产男女猛烈无遮挡91| 亚洲夜晚福利在线观看| 午夜精品三级视频福利| 伊人伊成久久人综合网站| 欧美日在线观看| 97成人精品视频在线观看| 欧美国产日韩一区二区| 亚洲精品一区二区三区不| 国产日韩中文字幕在线| 正在播放欧美视频| 欧美丝袜美女中出在线| 欧洲永久精品大片ww免费漫画| 中文国产成人精品久久一| 国产精品亚洲欧美导航| 国产剧情久久久久久| 性金发美女69hd大尺寸| 精品久久久一区| 91九色国产在线| 久久99国产精品自在自在app| 国产剧情久久久久久| 亚洲欧美日韩精品| 2019中文字幕在线| 奇米影视亚洲狠狠色| 亚洲人成电影网站色…| 亚洲一区二区日本| 亚洲无av在线中文字幕| 91欧美精品成人综合在线观看| 最近2019中文字幕大全第二页| 国产精品成人aaaaa网站| 欧美激情亚洲视频| 国产欧美一区二区白浆黑人| 91福利视频网| 日韩精品中文字幕视频在线| 日韩精品免费在线视频观看| 欧美日韩免费看| 欧美日韩国产激情| 78m国产成人精品视频| 91九色视频导航| 91在线免费观看网站| 精品久久久中文| 欧美视频第一页| wwwwwwww亚洲| 日韩中文娱乐网| 亚洲欧美激情精品一区二区| 欧美激情女人20p| 97成人精品视频在线观看| 欧美区在线播放| 国产精品成人免费视频| 久久久噜久噜久久综合| 欧美激情精品久久久| 久操成人在线视频| 久久视频在线观看免费| 久久久影视精品| 日韩av日韩在线观看| 亚洲精品一区二区网址| 精品一区二区亚洲| 国产精品欧美日韩一区二区| 91国偷自产一区二区三区的观看方式| 久久成人精品一区二区三区| 亚洲人免费视频| 亚洲情综合五月天| 国产精品美女在线观看| 国模视频一区二区三区| 久久中文字幕在线视频| 日韩在线视频一区| 欧美视频国产精品| 亚洲女人天堂色在线7777| 在线观看欧美日韩| 国产激情久久久久| 欧美在线观看视频| 久久天天躁狠狠躁夜夜爽蜜月| 性日韩欧美在线视频| 韩国v欧美v日本v亚洲| 久久亚洲精品小早川怜子66| 国产精品老女人精品视频| 国产精品精品视频| 亚洲tv在线观看| 国产一区二区三区在线视频| 九色91av视频| 久久免费视频网站| 国产91露脸中文字幕在线|