Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 在IE 10中,在HTML的大字符串上追加需要很长时间_Jquery_Html_Internet Explorer - Fatal编程技术网

Jquery 在IE 10中,在HTML的大字符串上追加需要很长时间

Jquery 在IE 10中,在HTML的大字符串上追加需要很长时间,jquery,html,internet-explorer,Jquery,Html,Internet Explorer,我在工作中遇到了一些jQuery代码的问题,我现在没有确切的代码,但我会尽力给出伪代码。我对javascript比较陌生,所以有些语法可能是错误的 我正在为表中的每一列动态创建一个包含不同值的HTML列表,然后将它们放入一个菜单中,当您单击该列的标题时,该菜单将打开(功能类似于Excel中的表)。所以我有一个字符串数组,我用这一行为每一列调用一个函数(共12列): 那么我调用的函数如下所示: myFunction(items, nColumnNum) { var r = "";

我在工作中遇到了一些jQuery代码的问题,我现在没有确切的代码,但我会尽力给出伪代码。我对javascript比较陌生,所以有些语法可能是错误的

我正在为表中的每一列动态创建一个包含不同值的HTML列表,然后将它们放入一个菜单中,当您单击该列的标题时,该菜单将打开(功能类似于Excel中的表)。所以我有一个字符串数组,我用这一行为每一列调用一个函数(共12列):

那么我调用的函数如下所示:

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(items,nColumnNum){
var r=“”;
var i=0;
对于(i=0;i标记且带有复选框和标签的HTML”
}
返回r;
现在我已经做了一些基本的分析,我知道“myFunction”并不是花这么长时间的。花这么长时间的部分是“.append”函数调用。这在Firefox中运行得非常快,但在IE 10中,当我处理“items”数组中的2200个项目时,大约需要1.5秒。因为有几列有这么多的项目,所以我12列,这需要很长时间。我曾尝试单独附加每个列表元素(虽然我认为这不起作用),并尝试设置innerHTML而不是“.append”,但都不起作用

IE引擎中是否存在针对此类问题的某种缺陷,如果存在,是否有解决这种情况的方法?或者是否有更有效的方法


提前谢谢。

请找到与之相关的小提琴,它在IE上也很好用

让我们举一个拥有项目的例子

var items = [1,2,3,4,5,6,7,8,9,10,11,12,13];
items.length = 2200;
JS代码

$(document).ready(function(){
  $("#list_elements").empty().append(myFunction(items, 10));
});

function 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;
}
$(文档).ready(函数(){
$(“#列表_元素”).empty().append(myFunction(items,10));
});
函数myFunction(项,nColumnNum){
var r=“”;
var i=0;
对于(i=0;i标记且带有复选框和标签的HTML”
}
返回r;
}
html代码:

<ul id="list_elements"></ul>

    当您超过某些数字时,字符串连接总是很慢。最终用户查看那么多项目是否现实?是的,此功能可能是最重要的部分,因为它用于搜索库存中的项目。因此,例如,您可以查看所有序列号并选择拨款他们需要从该列表中删除项。字符串连接(至少在名为“myFunction”的函数中)不会花费太长时间。@user3367400,您对解释满意吗?或者有任何疑问吗?:)
    <ul id="list_elements"></ul>