【发布时间】:2014-03-01 05:54:40
【问题描述】:
我在工作中遇到了一些 jQuery 代码的问题,我现在没有确切的代码,但我会尽力提供伪代码。我对 javascript 比较陌生,所以有些语法可能是错误的。
我正在为表格中的每一列动态创建一个不同值的 HTML 列表,然后将它们放在一个菜单中,当您单击列标题时会打开该菜单(功能类似于 Excel 中的表格)。所以我有一个字符串数组,我用这一行为每一列调用一个函数(有 12 个):
$(name of ul element).empty().append(myFunction(items, nColumnNum));
那么我调用的函数如下:
myFunction(items, nColumnNum) {
var r = "";
var i = 0;
for (i = 0; i < items.length; i++)
{
r += "HTML with <li> tag with checkbox and label inside"
}
return r;
现在我已经做了一些基本的分析,我知道“myFunction”并不是需要这么长时间的。需要很长时间的部分是“.append”函数调用。这在 Firefox 中进行得非常快,但在 IE 10 中,当我处理“items”数组中的大约 2200 个项目时,大约需要 1.5 秒。由于几列有这么多项目,而我有 12 列,这需要很长时间。我已经尝试单独附加每个列表元素(尽管我认为这行不通)并且我尝试设置 innerHTML 而不是 '.append' 但它都不起作用。
IE 引擎中是否存在针对此类事情的某种错误,如果存在,是否有解决这种情况的方法?还是有更有效的方法来做到这一点?
谢谢,提前。
【问题讨论】:
-
当您超过某些数字时,字符串连接总是很慢。最终用户浏览这么多项目是否现实?
-
是的,这个功能可能是最重要的部分,因为它用于搜索我们库存中的项目。因此,例如,可以查看所有序列号并从该列表中选择他们需要的适当项目。而且字符串连接(至少在那个名为“myFunction”的函数中)根本不需要很长时间。
标签: jquery html internet-explorer