0

我的代码:

$.getJSON("registro/backend.php?action=list&id="+sel.value, function(data){

            var options = [];

            for (var i=0; i<data.rows.length; i++) {
                options += '<option value="' + data.rows[i].id + '">' + data.rows[i].name + '</option>';
            }
            $("#select").html(options);
        })

当要加载的数据太大(大量以 JSON 编码的数据)时,此代码会冻结选择和导航器。

有没有办法在后台加载或提高性能?

4

2 回答 2

0

尝试使用 $.each 函数...

$.getJSON("registro/backend.php?action=list&id="+sel.value, function(response){

                var options = [];

                $.each(response,function(index,data){
                    options += '<option value="' + data.rows[index].id + '">' + data.rows[index].name + '</option>';
                }
                }
                $("#select").html(options);
            })
于 2013-03-20T12:12:08.460 回答
0

您应该将数组的长度存储在循环中,并存储变量以减少对数组的访问。

for (var i=0,len=data.rows.length; i<len; i++) {
var row = data.rows[i];
options += '<option value="' + row.id + '">' + row.name + '</option>';
            }

参考:http ://browserdiet.com/#use-for-instead-of-each

于 2013-03-20T12:15:27.867 回答