【问题标题】:Faster alternative to jQuery's .html function?更快地替代 jQuery 的 .html 函数?
【发布时间】:2009-10-07 19:36:58
【问题描述】:

我想知道是否有 jquery .html(variable) 函数的替代方法?它似乎很慢,并且在将 html 插入 DOM 时也会冻结。

我尝试使用 innerHtml,效果很好,速度也非常快。但是由于某种原因,当我在插入的代码中有任何 jquery 或 MS ajax 时,这些脚本只能在 FF 中工作。

我正在尝试插入大约 2000 行代码。

【问题讨论】:

  • 当你说2000行代码时,你是在调用.html 2000次吗?
  • 不,我将一个 ASPX 文档插入到包含 2000 行代码的页面中。我实际上将它用于标签系统,有点像在 Facebook 上切换提要时使用。

标签: jquery html innerhtml


【解决方案1】:

问题是您在页面中插入的 jquery 或 ms ajax (javascript) 代码没有被评估。 jquery 中的 .html 方法会为您执行此操作,但如果您想使用 .innerHtml,则必须使用 eval() 函数手动评估它:

eval(«javascript code here»);

所以步骤是,使用 innerHtml 插入 html,然后使用 eval 函数仅评估 javascript 部分。

【讨论】:

    【解决方案2】:

    如果您能更详细地说明您的问题,那就太好了。 一般来说,不需要进行 2000 次 .html() 更新,您必须将其加入到更大的 .html() 调用中,因为在每次 .html() 之后重建整个 DOM,这会导致速度变慢。

    【讨论】:

      【解决方案3】:

      我只是在阅读this answer,并且在 cmets 中有一个关于使用 DOM document fragments 的链接以及它与“正常”方法相比有多快……检查一下。它实际上并没有将基准与 jQuery 进行比较,但它会给你一个大致的概念。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-19
        • 2014-10-17
        • 2017-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多