asp.net ページからリクエストを送信し、SetInterval メソッドを介して GetCommand を呼び出して応答を待ちます。
function GetCommand(id, sid) {
getCommandResponse = $.ajax({
type: "POST",
async: true,
url: "../WebServices/TSMConsole.asmx/GetCommand",
data: "{'param' : '" + id + "', 'sid' : '" + sid + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result, status) {
AjaxFinishedGet(result, status);
getCommandResponse = null;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
AjaxFailedGet(XMLHttpRequest, textStatus, errorThrown);
getCommandResponse = null;
}
});
}
AjaxFinishedGet(result, status) で、データを抽出しようとします。
function AjaxFinishedGet(xml, status) {
endDate = new Date();
if (xml.d.IsPending == 'false' || endDate - startDate > timeoutMSec) {
if (getCommand != null) {
window.clearInterval(getCommand);
getCommand = null;
WriteGetCommand(xml.d.Text);
$("#showajax").fadeOut("fast");
}
}
}
ただし、テキスト サイズが 102330 バイトを超える場合 - AjaxFinishedGet の代わりに、AjaxFailedGet が呼び出されます :(
ajax応答データサイズの制限やjavascript変数のサイズに関する情報は見つかりませんでした.少なくともそのような変数は問題なく1MBを保持できます. 実際、テキストには 1MB のデータが含まれる場合があります...
問題はどこだ?