Мой первый выход на веб-страницы ajax вызывает у меня некоторые проблемы.
Моя основная структура состоит в том, что у меня есть таблица на странице, которую я хочу перезагрузить, не обновляя всю страницу.
Таким образом, при нажатии кнопки на странице это срабатывает:
function RefreshMissionsAjax() {
//fade out the old table.
$(clientID('MissionsDisplay')).fadeOut(500);
//request the new value from the page (calls the GetIncompleteMissions() method in the MissionViewer.aspx.cs page)
$.ajax({
type: "POST",
url: "MissionViewer.aspx/GetIncompleteMissions",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$(clientID('MissionsDisplay')).html(msg.d);
$(clientID('MissionsDisplay')).fadeIn(500);
},
error: function (xhr, ajaxOptions, thrownError) {
$(clientID('MissionsDisplay')).html('An error occured while trying to refresh the page data.');
$(clientID('MissionsDisplay')).fadeIn(500);
}
});
}
А у меня в коде bedind страницы aspx:
[WebMethod]
public static string GetIncompleteMissions()
{
return GetHTMLTable();
}
Этот метод просто захватывает некоторые данные и создает HTML-таблицу - ничего особенного.
Когда возвращаемая таблица мала (десяток строк или меньше), она работает как шарм.
Но когда он становится больше, это занимает много времени.
При 100 строках обработка таблицы может занять 5 минут.
На 1000 строк я оставил его на 30 минут, и ничего не произойдет после затухания.
(Примечание: он загружается довольно быстро при загрузке страницы до использования обновления ajax, поэтому проблема заключается не в создании таблицы на стороне сервера).
Это моя первая настоящая попытка сделать что-то подобное, так что я не знаю, является ли это лучшим способом сделать это - это было просто то, что я собрал, которое отлично работало, когда я тестировал с небольшими наборами данных.
Теперь не так много.
Есть идеи, как я могу сделать его пригодным для использования?