ASP.Netページで、jQueryAJAXを使用してスクロールしながらサーバーからデータを読み込んでいます。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にアクセスする方法もわかりません。
WebMethodとjQueryの両方からアクセスできるViewStateの代わりに何を使用できますか?