我正在尝试提高IE8中select2 v3.4.8库的性能。
基本上,我已经将问题缩小到从SingleSelect2的开启方法到父AbstractSelect2的开放方法的调用。我所说的方法调用就是这个:
this.parent.opening.apply(this, arguments);
我看到此通话需要5秒钟才能完成。在某些情况下,在IE8中打开下拉列表需要10秒钟。
我已经做了一些性能改进。例如,而不是不断添加:
<div id="select2-drop-mask" class="select2-drop-mask"></div>
以编程方式对DOM进行编程,我只是将其直接添加到标记中并将其设置为display:none。这节省了相当多的周期,因为显然,在IE8中向DOM添加元素从Javascript开始是很昂贵的。
但我仍然希望获得比这更多的性能改进。通过进行此更改,我们只将性能提高了约10-20%。
有人对我有任何建议吗?
我们已经缓存了数据,以便在页面加载时显示在客户端的下拉列表中。因此,当下拉列表打开时,将进行零服务器调用。性能瓶颈完全在select2库本身内部。
很遗憾,我们无法升级我们的select2库。这样做至少是一个8点的用户故事,所以目前我们无法进行升级。
感谢任何能够提供帮助的人!
-classTemplateT