javascript - 可编辑的 HTML 内容在很大时非常滞后

标签 javascript html internet-explorer webbrowser-control contenteditable

例如,我有以下简单的 HTML 页面,其中 <span>[SOME FIELD]</span>正在重复多次以弥补大约200K的文件大小:

<!DOCTYPE html>
<html>
<head>
</head>
<body editableContent="true">
        <span>[SOME FIELD]</span>
        <span>[SOME FIELD]</span>
...
        <span>[SOME FIELD]</span>
</body>
</html>

随着内容的增长,编辑体验变得非常滞后。几乎不可能输入或编辑内容。

这是一个 complete repro case 。要明白我的意思,只需将光标移动到可编辑内容的末尾并尝试编辑。 它在 IE 和 Chrome 下滞后很长时间,几乎无法输入。 不过,它在 Firefox 下运行良好

问题:我需要让它在 IE 下运行得相当快。

到目前为止,我已经接近 IE8 仿真(使用 <meta http-equiv="X-UA-Compatible" content="IE=8"> ),所以 this工作(在 IE 下)。

但是,我需要支持IE=edge , 也。任何关于如何实现这一目标的建议将不胜感激。 IMO,这是一个错误(我提交了 here for IEhere for Chrome ),但我正在寻找任何解决方法。

已更新,为在独立 IE 浏览器或托管自定义应用程序中加载时有效的任何解决方案提供赏金 WebBrowser control , 使用 IE=edge HTML 文档模式。

已更新,对应IE bug reported刚刚关闭为“不会修复”。

最佳答案

为什么不分解数据并将其存储在数组或 Json 对象中,一次只读取一部分,并在用户滚动或移动内容时更新。这样,在任何时间点都只会处理一小部分。如果你使用 Jquery,你可以从类引用中获取 id。如果你不想使用 Jquery,你可以用原始 Javascript 编写一个类标识符函数。下面是粗略的,但你可以理解。

<!DOCTYPE html>
<html>
<head>
</head>
<body editableContent="true">
    <span id="item1" class="handle_items">[SOME FIELD]</span>
    <span id="item2" class="handle_items">[SOME FIELD]</span>
    ...
    <span id="item-n" class="handle_items">[SOME FIELD]</span>
</body>
</html>

<script>
$(function(){

    var arrayData = [];

    $(".handle_items").mouseover(function() {
        var identVar = $( this ).prop('id');
        fillHtml(identVar);
    });

    function fillHtml(identVar) {
        $("#" + identVar).html(arrayData[i]);
    }
});
</script>

关于javascript - 可编辑的 HTML 内容在很大时非常滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24888187/

相关文章:

javascript - jquery 不显示隐藏元素

html - 简单的 flexbox 示例在 Internet Explorer 11 中呈现不正确?

javascript - 我在面试中能够解决 addNum(4,5) 和 addNum(4)(5),但是如果 addNum(1)(2)...(N) 呢?

php - 主页登录表单 - Wordpress

javascript - 在非全屏元素上使用 fullPage.js 插件?

java - 我们如何在 swing 应用程序中使用 java 实现 .xml 文件?

internet-explorer - IE 创建字体图标奇怪的下划线

jQuery 不透明动画在 Internet Explorer 中扭曲定位

简单阶乘函数上的 Javascript 'too much recursion'

javascript - 如何在其他域中嵌入 React 组件?