以下に、ロードする必要がある要素を探して div#canvas (HTML5 のキャンバスとは関係ありません) を通過する each-loop があります。基本的に、要素に target 属性があり (1 行目)、指しているターゲット (target$) が div#canvas にない場合 (6 行目)、Ajax $.post リクエストが起動され (7 行目)、欠落しているターゲットが取り込まれます。サーバーから取得し、div#canvas の先頭に追加します。
$("#canvas .active[target]").each(function() {
this$ = $(this);
targetName = this$.attr('target');
target$ = $('div[name=' + targetName + ']');
if (target$.length == 0) {
$.post('loadData.php', { fileName : targetName + '.xml' },function(xml) {
canvasData$ = $(xml).find("canvasData");
$('#canvas').prepend(canvasData$);
});
}
});
これらの欠落しているターゲットがすべてロードされたら、Ajax リクエストを発行してすべてをdiv#canvas
サーバーに送信したいと考えています。その呼び出しは次のようになります。
Status$.load('writePage.php', {
pageName: pageName,
seg1: seg1,
canvas: canvasOuterHTML,
seg2: seg2
});
writePage
不足しているすべてのターゲット読み取りが完了するまで、最後の呼び出しを延期する最善の方法を誰かが提案できますか?
ありがとう。