好吧,我已经构建了一个绘图应用程序,它包含一个使用HTML画布的绘画工具。油漆桶的问题在于,尽管我尽可能提高了效率,但需要很长时间才能做出响应。这是浏览器没有得到足够处理能力的问题吗? Javascript是否很慢?画布是否缓慢?我如何加快这个JavaScript绘画应用程序?
对于像这样的处理器密集型功能,Java会是最好的选择吗?或者也许闪光?
好的,这里有一些代码。顶部(换行符之前)运行,然后换行符下面的部分运行四次,光标每个方向一个。 (左,上,右,下)显示的一个显然是左边一个像素。
if (typeof paintPos[x] === 'undefined') {
paintPos[x] = {};
}
paintPos[x][y] = x+'|'+y;
var runRecurse = 0;
if (typeof paintPos[x-1] === 'undefined') {
runRecurse = 1;
} else if (typeof paintPos[x-1][y] === 'undefined') {
runRecurse = 1;
}
if (runRecurse === 1) {
if (x-1 >= 0) {
var colData = ctx.getImageData(x-1, y, 1, 1).data;
var colHexNew = "#" + ("000000" +
rgbToHex(colData[0],colData[1],colData[2])).slice(-6);
if (colHex === colHexNew) {
setPaintPos(x-1,y,colHex);
}
}
}
然后,为了真正在作画,我只是这样做:
$.each(paintPos,function(key,value) {
$.each(paintPos[key],function(key2,value2) {
var paintCol = value2.split('|');
var paintX = paintCol[0];
var paintY = paintCol[1];
ctx.fillRect(paintX,paintY,1,1);
});
});
答:也许。告诉我们你的代码。 – SLaks
没有代码,你的问题过于主观,可能会引发争论。现在好多了。 –