我正在执行一个 jQuery.ajax()
调用,它返回List<string>
一个指定子网上的 IP 地址。我[WebMethod]
在 .aspx 页面上使用 a 来返回值。ASP.NET 的内置 JSON 序列化程序神奇地返回了我的 Javascript 中使用的实际 JSON。
我已经分析了服务器端时间,填充和返回列表大约需要 8 毫秒,所以服务器端代码不是问题。
但是,当启动 Ajax 调用时,在 Internet Explorer 中,可能需要 3 秒以上的时间来填充返回的一小部分 IP 地址列表框。在 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);
}
});