2

我有一个包含大量 HTML 的表格,我正在尝试在其上创建一个 jQuery 对话框。这个过程非常慢(在 IE 中大约 8 秒),这是不可接受的。创建对话框通常非常快,但如果有大量标记,显然不是。

我理解部分性能问题的原因是它会删除并将创建对话框的部分附加到 DOM 的末尾,这对于如此大量的 HTML 来说很慢。

有没有办法通过手动创建模态所需的部分标记来加快进程,欺骗 jQuery UI 不移动 HTML 或其他东西?我已经尝试过:

  • 使模态无法重新调整大小
  • 使模态不可移动
  • 将桌子包裹在另一个

我想继续使用 jQuery UI 标记,因为我们在其他地方使用它并且已经花时间适当地设置它的样式。谢谢!

这是一个演示问题的非常简单的示例:

http://johnculviner.com/modaltest.html

4

3 回答 3

2

根据 charlietfl 的一些建议,我想出了我能找到的最佳解决方案。在这里发表了一篇文章:http: //johnculviner.com/a-jquery-ui-dialog-open-performance-issue-and-how-to-fix-it/

于 2012-10-16T05:38:39.410 回答
1

这是一个可能的建议:

1.) 创建您的对话框 html 表,其中包含约 20 行。2.) 在文档就绪时创建对话框小部件和对话框单击处理程序。3.) 在 document.ready 之外,创建一个自调用函数,该函数将添加剩余的表行。

这是我在 jsfiddle 上使用这种方法创建的演示

于 2012-06-18T03:17:37.183 回答
0

宽度:$(window).width()
高度:$(window).height()

使用当前视口宽度设置对话框的高度和宽度。你会发现它的加载速度要快得多。

这是因为当您静态设置对话框宽度并且加载对话框时,它必须将内容压缩到对话框的大小,这需要时间。

于 2013-12-10T10:10:45.317 回答