На моей странице ASP.Net я загружаю данные с сервера во время прокрутки с помощью jQuery AJAX. Я использую этот метод, так как загрузка данных с сервера с использованием AJAX поможет любому приложению улучшить его производительность, потому что данные, которые отображаются только на экране, загружаются в первый раз, и при необходимости с сервера загружаются дополнительные данные. пользователь прокручивает. Я использую следующий код:
$(document).ready(
function () {
$contentLoadTriggered = false;
$(window).scroll(
function () {
if ($(window).scrollTop() >= ($("#wrapperDiv").height() - $(window).height()) && $contentLoadTriggered == false) { //here I want to check for the isReady variable in ViewState
$contentLoadTriggered = true;
$.ajax({
type: "POST",
url: "MyPage.aspx/GetDataFromServer",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (msg) {
$("#wrapperDiv").append(msg.d);
$contentLoadTriggered = false;
},
error: function (x, e) {
alert("The call to the server side failed. " + x.responseText);
}
});
}
});
});
[WebMethod]
public static string GetDataFromServer()
{
string resp = string.Empty;
for (int i = 1; i <= 10; i++)
{
resp += "<p><span>" + i + "</span> This content is dynamically appended to the existing content on scrolling.</p>";
}
//if (myConidition)
//ViewState["isReady"] = true;
return resp;
}
В какой-то момент (когда мое условие выполнено) я хочу прекратить загрузку данных с сервера. Поэтому я подумал о том, чтобы установить логическую переменную isReady
в ViewState
, а затем проверить значение этой переменной в jQuery, чтобы определить, следует ли вызывать WebMethod. К сожалению, я не могу использовать ViewState в WebServices, и я также не знаю, как получить доступ к ViewState в jQuery.
Что я могу использовать в качестве альтернативы ViewState, доступ к которому можно получить как из WebMethod, так и из jQuery?