javascript - ctx.lines() 在 Mac 上最多需要 8.7 秒,但在任何其他浏览器中不到 1 毫秒

标签 javascript macos performance canvas safari

我有一个 Canvas ,创建 8 个图像(彩色谷歌地图标记):
enter image description here
此代码是造成问题的代码:

ctx.beginPath()
ctx.moveTo( lw, h/3 )       //  Left
ctx.lineTo( w/2, lw )       //  Top
ctx.lineTo( w - lw, h/3 )   //  Right
ctx.lineTo( w/2, h - lw )   //  Bottom
ctx.closePath()
ctx.fill()
// conditional dashed line border (see in codepen L31 - L41)
ctx.fill()
ctx.stroke()    //  This call takes up to 8.7sec (on MAC safari only)

我试图将代码缩小到问题范围,但只是为了确保我制作了 codepen .
证明,它在 MAC 上不起作用

enter image description here

如何使其在 MAC 上的运行速度与在 PC 上的运行速度一样快?

最佳答案

我发现了问题所在,不知道是否应该报告...
问题是,Mac 上的 Firefox(甚至可能在其他浏览器上)存在 ctx.setLineDash([0]) 问题,其他浏览器没有零问题,但 Firefox 却存在问题第一次中风调用。

“正确”的方法是ctx.setLineDash([])

关于javascript - ctx.lines() 在 Mac 上最多需要 8.7 秒,但在任何其他浏览器中不到 1 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361083/

相关文章:

javascript - html 中的 <a> 标签

javascript - 如何使用 ionicons 将搜索图标图像放在搜索框中?

objective-c - 在 Mac OS X 应用程序中通过 objective-c 扫描 Wifi 网络

c++ - memcmp - 是否有更快的方法来按位比较两个缓冲区

javascript - 为什么我在 Chrome 的网络瀑布功能中看到请求之间存在很大差距?

javascript - iOS PhoneGap。防止 iFrame 缓存

javascript - 为什么我可以将命名属性添加到数组中,就好像它是一个对象一样?

macos - 为什么decidePolicyForNavigationAction请求中的url返回http ://localhost:8888/%E2%80%9Chttp://example. com%E2%80%9D

python - 尝试从 Mac OS X 连接到 Vertica 时连接字符串无效

JavaScript - 需要多维数组吗?