Я выполняю вызов jQuery .ajax()
, который возвращает List<string>
IP-адресов в указанной подсети. Я использую [WebMethod]
на странице .aspx, чтобы вернуть значения. Встроенный в ASP.NET JSON-сериализатор делает все возможное, чтобы вернуть фактический JSON, использованный в моем Javascript.
Я профилировал время на стороне сервера, и для заполнения и возврата списка требуется около 8 мсек, поэтому код на стороне сервера не является проблемой.
Однако, когда инициируется Ajax-вызов, в Internet Explorer может потребоваться до 3 секунд, чтобы заполнить список с небольшим списком возвращенных IP-адресов. В Firefox список по сути заполняется мгновенно.
Я не совсем уверен, где может быть узкое место. Мое лучшее предположение состоит в том, что ошибка связана с движком JavaScript IE6, но даже в этом случае добавление только 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);
}
});