所以我做了一個測試SVG和Canvas渲染時間的網頁。測試是爲不同的瀏覽器完成的。我認爲Canvas會比SVG更好,但是從我的測試中我發現Canvas對大對象和圓對象有問題。我有我的測試這裏的結果:Svg vs Canvas和循環對象的渲染時間
http://lezag2.linuxpl.info/wykresT2.html - 這是50.000矩形被= 500 pixsels
http://lezag2.linuxpl.info/wykresT4.html reslts - 這是50.000圈與R = 250個像素的結果
我用簡單的代碼在頁面上生成對象。 帆布:
var ctx = document.getElementById('canvas').getContext('2d');
for(var i=0;i<50000;i++){
ctx.beginPath();
var centreX = Math.random() * 1000;
var centreY = Math.random() * 1000;
var radius = 50;
var startAngle = 0 * Math.PI/180;
var endAngle = 360 * Math.PI/180;
ctx.arc(centreX,centreY,radius,startAngle,endAngle,false);
ctx.fillStyle = "rgb("+Math.floor(Math.random()*256)+","+ Math.floor(Math.random()*256)+","+ Math.floor(Math.random()*256)+")";;
ctx.fill();
ctx.closePath();
}
和SVG:
for (var i = 0; i < 50000; i++) {
var x = Math.random() * 1000,
y = Math.random() * 1000;
var circ = document.createElementNS(svgns, 'circle');
circ.setAttributeNS(null, 'cx', x);
circ.setAttributeNS(null, 'cy', y);
circ.setAttributeNS(null, 'r', 50);
circ.setAttributeNS(null, 'fill', '#'+Math.round(0xffffff * Math.random()).toString(16));
document.getElementById('svgOne').appendChild(circ);
}
我很奇怪,爲什麼相比於SVG畫布有這樣煩惱的時候。我試圖谷歌我的問題,但只發現非常comlpex測試。有人可以解釋爲什麼帆布有這麼糟糕的時候?也是我的名字很好 - 我的意思是渲染時間?
編輯
我忘了說明我是如何呈現時間的。
befTime = (new Date()).getTime();
{
(drawing function)
}
var actTime = (new Date()).getTime();
var testTime = (actTime-befTime)/1000;
這就是爲什麼我問,如果我不將其命名爲錯說「渲染時間」