指定したサブネットの IP アドレス.ajax()
を返すjQuery 呼び出しを実行しています。.aspx ページでList<string>
a を使用して値を返します。[WebMethod]
ASP.NET のビルトイン JSON シリアライザーは、JavaScript で使用されている実際の JSON を返す魔法のように機能します。
サーバー側の時間をプロファイリングしましたが、リストを入力して返すのに約 8 ミリ秒かかるため、サーバー側のコードは問題ではありません。
ただし、Ajax 呼び出しが開始されると、Internet Explorer では、返された IP アドレスの小さなリストをリストボックスに入力するのに 3 秒以上かかる場合があります。Firefox では、リストボックスは基本的に即座に入力されます。
ボトルネックがどこにあるのか完全にはわかりません。私の推測では、問題は IE6 の JavaScript エンジンにあると思われますが、それでも 255 個のリスト項目を追加するだけなら、それほど時間はかからないはずです。
なぜこれが起こっているのか、誰かが私を正しい方向に向けることができますか?
サンプルコード
$.ajax({
type: "POST",
url: $("Example.aspx/GetIPsOnNetwork",
data: "{NetworkID: " + networkID + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
$('#ipAddresses').empty();
// Loop through each IP address and add it to the listbox
$.each(data.d, function(){
var ip = this.toString();
$(document.createElement('option')).attr('value', ip).text(ip).appendTo('#ipAddresses');
});
},
error: function(msg) {
alert('Error: ' + msg);
}
});