Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5画布更快的fillText()与drawImage()_Javascript_Html_Canvas - Fatal编程技术网

Javascript HTML5画布更快的fillText()与drawImage()

Javascript HTML5画布更快的fillText()与drawImage(),javascript,html,canvas,Javascript,Html,Canvas,我有一个数字时钟正在运行,每10毫秒更新一次。在每次抽签调用中,我都使用以下内容: var gradient = clockContext.createLinearGradient(0, 0, 0, this.digitWidth); gradient.addColorStop(0.15, "rgb(255, 252, 52)"); gradient.addColorStop(0.15, "rgb(245, 127, 26)"); gradient.addColo

我有一个数字时钟正在运行,每10毫秒更新一次。在每次抽签调用中,我都使用以下内容:

    var gradient = clockContext.createLinearGradient(0, 0, 0, this.digitWidth);
    gradient.addColorStop(0.15, "rgb(255, 252, 52)");
    gradient.addColorStop(0.15, "rgb(245, 127, 26)");
    gradient.addColorStop(1, "rgb(248, 159, 52)");
    clockContext.fillStyle = gradient;
    clockContext.lineWidth = 1;
    clockContext.lineStyle = "#000000";
    clockContext.fillText(time, (this.digitWidth * i) + e + s, 46);
    clockContext.strokeText(time, (this.digitWidth * i) + e + s, 46);
现在,这比创建一个0-9数字的PNG快还是慢,缓存每个数字,然后在每次绘图调用中使用drawImage?

drawImage总是,总是比fillText快。根据文本的构造方式,它可以快100多倍

不久前,我在这里做了一个曲折的分析:

这里有一个简单的jsperf示例:

drawImage总是,总是比fillText快。根据文本的构造方式,它可以快100多倍

不久前,我在这里做了一个曲折的分析:


下面是一个简单的jsperf示例:

现在使用drawImage。在单独的画布上画0-9,然后画到主画布上,还是直接画到主画布上更好?神圣的翻转奶牛。这使我的应用程序更加流畅和快速。谢谢你的例子!只需使用0123456789制作一个PNG,并将该PNG直接绘制到主画布上即可。现在使用drawImage。在单独的画布上画0-9,然后画到主画布上,还是直接画到主画布上更好?神圣的翻转奶牛。这使我的应用程序更加流畅和快速。谢谢你的例子!只需使用0123456789制作一个PNG,并将该PNG直接绘制到主画布上,也就是该PNG的一部分。