Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery UI排序时的可排序性能_Jquery_Jquery Ui_Jquery Ui Sortable - Fatal编程技术网

jQuery UI排序时的可排序性能

jQuery UI排序时的可排序性能,jquery,jquery-ui,jquery-ui-sortable,Jquery,Jquery Ui,Jquery Ui Sortable,我有一个日历在生产中使用,60天,每天最多5个可排序项目,因此有300个可排序项目。日期是元素,事件是s 一天内排序和从一天拖到另一天都很慢。当元素进入新的一天或经过另一个可排序的项目时,它会冻结一点 延迟似乎与天数和可排序项目的数量有关 这是jQuery代码 $('.calendar-schedule-day').sortable({ items: ".service-trip, .calendar-event", connectWith: ".calendar-schedul

我有一个日历在生产中使用,60天,每天最多5个可排序项目,因此有300个可排序项目。日期是
元素,事件是
s

一天内排序和从一天拖到另一天都很慢。当元素进入新的一天或经过另一个可排序的项目时,它会冻结一点

延迟似乎与天数和可排序项目的数量有关

这是jQuery代码

$('.calendar-schedule-day').sortable({
    items: ".service-trip, .calendar-event",
    connectWith: ".calendar-schedule-day"
});
如何减少排序时出现的延迟

更多信息

当chrome连续多次调用
布局
重新计算样式
时,会出现以下警告:

布局-详细信息
持续时间15.000 ms(36.86) s)
注意:强制同步布局可能是性能瓶颈。
布局无效



更新:-它的速度太慢了,我不知道它是否重现了问题。在生产中不是这样的。但是,如果我开始从示例中删除html(如weeks),那么我可能无论如何都无法重现问题。

通过在调用sortable之前隐藏所有可排序元素,然后再次显示它们,我似乎可以更快地解决问题

$('.calendar-schedule-day').hide();
$('.calendar-schedule-day').sortable({ ... });
$('.calendar-schedule-day').sortable({ connectWith: ... });
$('.calendar-schedule-day').show();

更好的修复方法

使用
.sortable()时,只需使用此选择器
$('.calendar schedule day:visible')
而不是
$('.calendar schedule day')


似乎隐藏元素会扰乱可排序性,因此我们将只对可见元素进行排序。

Chrome的时间线检查器显示,
Layout
recreactestyle
在上述点上被连续调用了大约100次。请提供@jsfiddle的Dom速度太慢了,我无法判断它是否重现了这个问题。在生产中不是这样的。但是,如果我开始从示例中删除html(比如几周),那么我可能无论如何都无法重现这个问题jsfiddle@Benjamin将代码发布到某个地方,即使它运行缓慢,我们也需要查看代码。如果你不在星期天露面,那么你就得在那里修理一些东西,但是我认为这样你可以大大提高速度。亲爱的,我想你做到了。只是需要在这里做更多的测试来确认。到目前为止,这看起来很棒。伯纳多,非常感谢你。它现在在chrome中肯定工作得很顺利。我还检查了ie10,它的速度非常快。很酷。再次感谢。不客气,我还不知道为什么,但似乎那些看不见的物体被分类是问题所在。