【问题标题】:jQuery applied on gridView slowing down the performancejQuery应用于gridView会降低性能
【发布时间】:2012-02-07 16:35:51
【问题描述】:

我们有一个跨越 126 行和 11 列的网格。网格可以用大约一千个文本框进行编辑(我理解糟糕的设计,但客户很固执)。 因此,在这些文本框上,我们调用 jQuery 自定义函数来计算网格长度和宽度上的总和和乘法。 自定义方法应用于组中的两行或三行以提供小计和总计。 由于生成的脚本数量巨大,页面速度急剧下降。这意味着当我在文本框中输入任何数字时,至少需要 2 秒才能响应并将结果填充到指定的文本框中。

我们正在使用 .live() 方法,因为网格位于更新面板中。 非常需要任何有助于优化可怕性能的帮助,我们将不胜感激。

【问题讨论】:

    标签: performance optimization jquery


    【解决方案1】:

    首先,下面的一切都是猜测。您是否对页面进行了分析以查看瓶颈所在?是否有一个公共 URL,我们可以在其中看到这一点?

    通过切换到.delegate().on() 来附加事件可能会有一个小的改进。将事件尽可能靠近网格。不过我怀疑这会有很大帮助。

    基本上听起来您正在尝试实现电子表格,因此我建议您使用与电子表格相同的技术。使用依赖图来确定单元格更改时真正需要重新计算的内容。存储不经常更改的事物的中间结果。与其尝试一次重新计算所有内容,不如使用 setTimeout 一次计算几行网格。

    【讨论】:

    • 非常感谢 Dave,您没看错,我们实际上是在实现一种电子表格。您能否将我指向依赖关系图资源,如链接中的链接,我可以在其中找到有关此问题的某种提示或教程。而且我们使用的是 jQuery 1.6.2,所以是的,我们尝试了 .delegate() 但似乎网格太大而无济于事。 .on 适用于 jquery 1.7+
    • 我不知道有什么好的参考资料;我曾经与 Microsoft 内部的 Excel 小组交谈,这就是我获得基本信息的地方。 :) 但是,您应该能够查看表单并根据其他字段确定哪些字段发生了变化。因此,如果有多个子表单被小计,请记住小计并仅重新计算实际更改的那个。
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多