小编Tam*_*mmo的帖子

如何在html5画布中绘制椭圆?

似乎没有原生的功能来绘制椭圆形的形状.我也不是在寻找蛋形.

是否可以画出一条带有2条贝塞尔曲线的椭圆形?有人在那里出现了吗?

我的目的是画一些眼睛,实际上我只是使用弧形.提前致谢.

因此scale()会更改所有下一个形状的缩放比例.Save()保存设置之前和恢复用于恢复设置以绘制新形状而不缩放.

感谢Jani

ctx.save();
ctx.scale(0.75, 1);
ctx.beginPath();
ctx.arc(20, 21, 10, 0, Math.PI*2, false);
ctx.stroke();
ctx.closePath();
ctx.restore();
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas

75
推荐指数
8
解决办法
8万
查看次数

为什么translate3d泄漏了DOM节点?

考虑这个HTML页面:

http://jsbin.com/aYcece/1/ (我建议下载它以摆脱所有的jsbin噪音).

点击GO按钮,就会在身体上添加一个div.RM删除其中一个div.它还将两种样式中的一种应用于新div:

newDiv.style.color = "red";
// or
newDiv.style.WebkitTransform = "translate3d(0px, 0px, 0px)";
Run Code Online (Sandbox Code Playgroud)

如果应用了WebkitTransform,您可以在chrome dev工具内存时间轴中看到不断增加的节点数,GC无法删除.红色样式不会发生这种情况.

编辑:只是为了说明应用"红色样式"添加和删除div的操作是节点计数等效.

这种行为的原因是什么?我错过了这一点吗?甚至没有DOM节点泄漏?

您可以在此处找到两个时间轴记录:https: //docs.google.com/file/d/0B9S6doraVaWXdjRyWjluMW1BUlU(翻译) https://docs.google.com/file/d/0B9S6doraVaWXQVAwbFpfZzh1RVE(红色)

在两个记录中,连续添加和删除3个div,最后请求GC.仅供您参考:我有一个更复杂的角度应用程序,但我可以追查内存泄漏到同样的问题.无论如何我创建了这个更简单的例子

修改:时间轴记录的两张图片:https : //docs.google.com/file/d/0B9S6doraVaWXMURzMjdhMWI0UDA https://docs.google.com/file/d/0B9S6doraVaWXWGhwVWhlMjN4dkE

编辑2:运行Windows 8/Chrome 30.0.1599.69 m

javascript css memory-leaks google-chrome

6
推荐指数
1
解决办法
312
查看次数

标签 统计

javascript ×2

canvas ×1

css ×1

google-chrome ×1

html5 ×1

memory-leaks ×1