こんにちはまず私の悪い英語を申し訳ありません。私はすでにSOで検索しました。しかし、必要な正確な答えが得られませんでした。私の問題は、Ajax リクエストを同期する必要があることです。「 asynch : false 」を使用できることはわかっています。ただし、これによりブラウザがロックされます。Webにフォルダー ツリー (「タフェル ツリー」js を使用しています) があります。ツリー ノードは実行時に生成されます。ユーザーがノードをクリックするたびに、リクエストがサーバーに送信され、ノードがツリーに追加されます。しかし問題は、 f5をクリックしてページが更新された場合、以前に選択したツリー構造をロードする必要があることです。「 asynch : false 」を使用して実装しました。ただし、これによりブラウザが遅くなりすぎます。
そしてここに私が持っているもの
function loadPage() {
/* some other codes are here*/
/* here i call an ajax for get the inside folder list in correct order.(i am usig protoype)*/
new Ajax.Request(ajaxGetInsideFolderIdsUrl,
{
parameters: {branchId: CurrentSelectfolderId},
onSuccess: function(res) {
/* onSuccess i call another function*/
var brs = res.responseText.split(","); // branch ids in correct order.
syncFolder(brs)
}
}
function syncFolder(brs){
for(var i= 0 ; i < brs.length; i ++){
var tempbranch = tree.getBranchById(brs[i].getId());
selectAfterChange( tempbranch)
/*
selectAfterChange function is used for selecting current branch. calling "tafle tree" select() function in side it.
i just created an copy of "select()","_openPopulate()" functions used in "tafle tree" and modified it with "asynch : false ".and now its working fine.
*/
}
}
function selectAfterChange(brs){
brs.chk_select();
/* for selecting the branch (created a copy of current "select()" function used in "tafle tree" js
and modified it with "asynch : false "and now its working fine.) */
showList();// for listing items in side that folder (in another Ajax page).
}
私の問題は、ユーザーが長いブランチを開いた場合です。そして、ページを更新すると、同期 Ajax 呼び出しのために読み込みに時間がかかりすぎます。時間がかかりすぎることは、私にとって大きな問題ではありません。ただし、すべてのリクエストが実行されるまでブラウザはロックされます。これを行う他の方法はありますか。