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 でエンコードされた大量のデータ)、select とナビゲーターをフリーズします。

バックグラウンドでロードしたり、パフォーマンスを向上させる方法はありますか?

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 に答える