嗨,首先對不起我的英文不好。我已經在SO中搜索。但我沒有得到我需要的確切答案。 我的問題是我需要同步Ajax請求。我知道我們可以使用「asynch:false」。 但這會使瀏覽器被鎖定。我有一個文件夾樹(我使用「tafel樹」js)在我的網站。樹節點在運行時生成。每次 用戶單擊一個節點,它將發送請求到服務器並將該節點添加到樹中。 但問題是,如果該頁面點擊F5然後我需要加載我先前已經選擇的樹結構刷新。 我使用「asynch:false」來實現它。但是這會讓瀏覽器太慢。異步AJAX以有序方式調用
,在這裏我有什麼
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調用而花費太多時間加載。 花太多時間對我來說不是一個大問題。但瀏覽器被鎖定,直到所有的請求執行。 有沒有其他方法可以做到這一點。
無論您需要使用localStorage的工作,或讓你的後臺工作,它可以一次返回多個節點。 – epascarello 2013-03-05 03:31:02