在我的 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。不幸的是,我不能在 WebServices 中使用 ViewState,我也不知道如何在 jQuery 中访问 ViewState。
我可以使用什么来替代 ViewState,它可以从 WebMethod 和 jQuery 访问?