加载数据时jquery-ui-multiselect-widget闪烁?

时间:2014-06-02 06:22:41

标签: jquery jquery-ui multi-select

jQuery MultiSelect UI Widget 1.14pre

这对我来说是个问题,列表很长。 请参阅下图,了解onload和加载后效果(点击链接)。

我刚刚在mozilla机器上测试了1600个项目列表,浏览器锁定了约5分钟。

https://camo.githubusercontent.com/3dc1a939065e6364e699eef8f08b9cd653741cf0/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f333439313130312f3335313235362f61636133333962652d613034322d313165322d393462382d3239396561333065663532632e706e67

示例:假设我需要在网页上的Drop Down中显示1000个名称,我正在使用multiselect.js。加载此网页时,所有名称都会出现在<select><option</option></select>标记中。完成加载后,这将成为多选下拉。

$(function(){
    $("#"+ prefix + "schedule_id").multiselect({
      header: 'Travels',
      noneSelectedText: 'Travels',
      selectedText: 'Travels',
      prefix: prefix + 'travels',
    }).select2;
});

**在下载中加载数据时,它会闪烁。正如我在图像中所示 1)在加载页面/数据时。 2)加载页面/数据后。

有什么建议如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我猜它是你的AJAX数据加载方式的东西 - 可能导致连续的重新初始化。在初始化/重置下拉列表之前,尝试将完整数据完全加载到值元素中。

或者,您可以考虑将下拉选项的数据集存储为文本文件,并将该文本文件加载为选项内容而不是实时AJAX。如果选项内容没有太快变化,这将很有效。 (您可以运行一个单独的周期来定期更新选项文本文件)

我建议的第三个选项是使用谷歌类型过滤选择器。这样就可以搜索整个1000选项列表中的匹配项,而不是尝试渲染整个可滚动列表。