Ajax とファンシー ボックスについてばかげた質問があります。Ajax は初めてです。ファンシーボックスがボタンをクリックすると、いくつかの入力フィールドとボタンを持つフォームがポップアップするように、ページの1つでファンシーボックスを使用しています。ボタンをクリックすると、呼び出しが完了するまでインジケーターを表示する必要がある ajax 呼び出しを作成しようとしました。同期呼び出しを行いましたが、インジケーターは表示されませんでしたが、非同期呼び出しにした瞬間に正しく表示されました. 誰か理由を説明してくれませんか
更新: 以下のコードを見てください....正常に動作し、サーバーからの応答を取得するまでインジケーターを表示します...しかし、派手なボックスオーバーレイのボタンをクリックして呼び出されたときの関数は機能しませんasync false isAsync は False
function LoadCarrier(isAsync)
{
try
{
SetCarrierLoadingIndicator("","Loading..");
xmlHTTPObject1 = GetXMLHTTPObject();
xmlHTTPObject1.onreadystatechange = OnPopulateCarrierComplete;
var currentTime = new Date();
var parameters = "";
var pageNumber=document.getElementById(hdnCarrierCurrentPage).value;
parameters += "CarrierPage";
parameters += "^" + pageNumber;
parameters += "~NetworkIds";
parameters += "^" + GetAllSelectedNetworks();
parameters += "~SelectedCarriers";
parameters += "^" + GetAllSelectedCarriers();
var parms = "?OPCode=LoadCarrier&Parms=" + parameters + "&RequestTime" + currentTime;
var ajaxURL = ajaxCallHandlerUrl + parms;
xmlHTTPObject1.open ("GET", ajaxURL, isAsync);
xmlHTTPObject1.send(null);
}
catch(exception)
{
alert(exception);
}
return false;
}
function OnPopulateCarrierComplete()
{
if (xmlHTTPObject1.readyState == 4)
{
var result = xmlHTTPObject1.responseText;
var contents = result.split("[6CE650P$0$NTS3E!]");
if (contents[0] == "SUCCESS")
{
SetCarrierLoadingIndicator("none","");
if(contents[1].length > 0)
{
var details=contents[1].split("[$sEpaRaToR$]");
document.getElementById(lblCarrier).innerHTML=details[0];
document.getElementById(lblCarrierPaging).innerHTML=details[1];
document.getElementById(lblCarrierCount).innerHTML=details[2];
var tmp=details[3].split(',');
for(var i=0;i<tmp.length;i++)
{
CarrierList.push(Number(tmp[i]));
}
}
else
{
document.getElementById(lblCarrier).innerHTML="";
document.getElementById(lblCarrierPaging).innerHTML="";
document.getElementById(lblCarrierCount).innerHTML="0";
}
}
else
{
if(contents[1] == "Session Expired")
{
parent.document.location = "Default.aspx";
}
else
{
alert(contents[1]);
}
}
}
}