JQuery UI Dialog很慢

我最近遇到了一些痛苦。 我一直在使用JQuery对话框在Web应用程序中显示一些配置屏幕。 没什么特别的。 但是我有几个边缘情况,这个配置表单将显示一些… 11000选项的下拉列表。 [DODGES ROTTEN TOMATOES]

不用说,它很慢。 JQuery Dialog最多可能需要9秒才能显示(并且init也很慢)。

第一个问题是:有没有办法加速对话框? 从它看起来,它每次打开时都会复制所有内容。 如果有办法避免这种情况,那会有所帮助。

第二个问题:当被要求显示大量数据时,还有其他jQuery对话框表现更好吗?

和往常一样,欢迎其他解决方案。 一些自动完成ajax不会坏,但可能仍然很慢,除非它至少需要几个初始字符。

我遇到了这个问题并找到了解决方案: http : //forum.jquery.com/topic/select-in-dialog-causes-slowness-in-ie8

只需将对话框draggableresizable选项设置为false

如果一个选择所有可能的第一个字母只通过AJAX选项从这个字母开始到第二个选择?

管理以提高性能一点点。 我偏离了JQuery UI并创建了一个更轻的版本。 我没有将目标内容复制到对话框中,而是围绕内容构建对话框。

性能方面,对话从大约10秒钟变为2秒。

2秒听起来好多了,但你可能会发现它非常依赖于用户浏览器和系统配置 – 在IE中较慢的系统上它可能会更糟糕…

我会认真考虑使用其他东西而不是庞大的下拉菜单(这肯定不是非常用户友好) – 它听起来像是自动完成搜索框的一个很好的候选者,或者可能是多级级联下拉菜单。

您还可以在页面加载时创建对话框,并且仅在需要时打开它(在选项中设置autoOpen:false)

如果你必须在这样的对话框中做一个下拉菜单,那么我建议在页面加载后将信息加载到隐藏的div ajax样式中,然后在需要时在你使用的任何灯箱/对话框中显示隐藏的div。 这样,当用户正在做其他事情时,这些东西将被加载,并且有希望在它们出现时准备就绪。

将draggable和resizable设置为false工作。

取决于你用来显示数据的html,即对于chrome或firefox来说可能超级慢。

特别是在你展示大桌子的时候。 这些链接可能很有用 – 你甚至可能会花更多的时间。

http://jquery-howto.blogspot.com/2009/02/5-easy-tips-on-how-to-improve-code.html

http://www.artzstudio.com/2009/04/jquery-performance-rules/

我刚刚使用带有数百个复选框的选项卡式对话框遇到了这个问题。 我发现这个链接非常有用。 以前用17s打开对话框,但现在已经下降到大约1.3s。 ( 我正在使用可拖动的不可resize的对话框

诀窍是在打开对话框之前分离html,然后使用open函数为对话框重新附加内容。

 $('#triggerDialogFast').click(function () { var $dialogContainer = $('#dialogContentFast'); var $detachedChildren = $dialogContainer.children().detach(); $dialogContainer.dialog({ width: 425, height: 400, draggable: false, resizable: false, open: function () { $detachedChildren.appendTo($dialogContainer); }, }); }); 

我不确定,但是如果在您的场景中可以使用html,那么它应该可以通过在open函数中附加html来实现。