removeAllRanges在chrome/Alternatives中运行缓慢
removeAllRanges slow in chrome / Alternatives?
我正在开发一个带有node webkit(Chromium 38.0.2125.104)的markdown编辑器,该编辑器可以在键入时将markdown转换为html,并将其呈现在相同的contenteditable中(有点突出显示)。所以一切都很好:我通过在dom中插入一个新节点来保存插入符号的位置。然后我处理我的文本。然后我回到插入符号的位置并删除我的标记节点。
我的问题是我尽可能快地完成这一切。但超过一半的处理时间是由单一操作占用的:
selection.removeAllRanges();
在完成所有操作之后,在将我创建的范围添加到选择对象之前。在一次操作中损失了大约15/20毫秒,这是快速打字时开始感觉到的。有没有什么方法可以加快速度,比如调用其他东西,或者用不同的方式处理选择/范围?谢谢你(我是认真的,我一直用这个网站来回答问题,但这是我的第一个问题)
如果你只对Chrome感兴趣,你可以尝试使用非标准的WebKit方法setBaseAndExtent()
(抱歉,没有文档链接,因为据我所知,它从未被文档化)来直接设置选择。我不知道它是否会更快;我不明白为什么会这样。
假设您的范围存储在一个名为range
的变量中,并且您的选择存储在sel
:中
sel.setBaseAndExtent(range.startContainer, range.startOffset,
range.endContainer, range.endOffset);
相关文章:
- Xpath运行缓慢的查询
- 具有大型数据集的组件仅在 IE11/Edge 上运行缓慢
- 滚动事件运行缓慢-有没有更轻松的方法
- Html5画布动画在Android上运行缓慢
- JQuery animate() 函数延迟且运行缓慢
- 我的网站运行缓慢,我不知道为什么
- 为什么这段代码在火狐中运行缓慢
- Javascript 在加载 200mb 的新 Images() 后在 Safari / iPad2 中运行缓慢.为什么
- 在IE中导致“脚本运行缓慢”警告
- removeAllRanges在chrome/Alternatives中运行缓慢
- jQuery点击手柄在多次点击后运行缓慢
- html5/javascript游戏在ie8中运行缓慢
- jquery游戏在手机上运行缓慢
- Parse.Cloud在iOS上运行缓慢
- PrimeFaces”;此页面上的脚本导致Internet Explorer运行缓慢“;DataTable出错
- 当我使用这个时,浏览器运行缓慢
- 触发('click')导致“脚本运行缓慢,是否要停止它?”
- Gulp任务运行缓慢
- Angular-bootstrap -反复调用带有bootstrap工具提示的$compile会导致运行缓慢
- 在Mac OS X上运行缓慢