2012-11-25 29 views
0

我在一個Web應用程序中有一個函數,它使得AJAX調用更新一個元素。我有其他使用此功能的功能,以及使用這些功能的其他功能。無回調地處理背靠背的AJAX調用(如果可能的話)

說我有功能A,使AJAX呼叫。函數B調用函數A,函數C調用函數B.

現在想象我有函數D,這是另一個使AJAX調用的函數。

我想調用函數C,然後調用函數D.問題是我遇到了一個問題,有時函數D正在使用從函數C調用返回的響應。所以我不希望函數D運行,直到從函數C的AJAX請求收到響應。由於AJAX請求發生在鏈下(C> B> A),因此似乎有這樣一個竅門讓函數C接受回調,然後將該回調傳遞給B,該回調將該回調傳遞給A以便A在收到對其AJAX請求的響應後可以調用該回調函數。

這實際上是實現它的最好方法,還是可以更乾淨地完成?如果它有所作爲,我更喜歡不使用任何額外庫的解決方案(例如jQuery)。

非常感謝您的幫助。

+0

只是爲了澄清,另一個調用A的函數B和另一個調用B的函數C?你只需要調用Function A就可以了。我正確嗎? – harry

+0

在我的具體例子中,函數A是一個通用的AJAX請求執行函數,函數B是一個「保存文件」函數,函數C是一個「文件另存爲」函數。所以「保存文件爲」做了一些東西和不可避免的調用「保存文件」,它也做了一些東西,然後調用函數A來生成AJAX請求。 – ARW

+0

這就是所謂的承諾,如果沒有圖書館(甚至還有圖書館......),很難讓它正確無誤。 – Christophe

回答

0

你想使用promise模式。

+0

乾杯,我知道那裏必須有東西。非常感謝你! – ARW

0

你可能你爲什麼不能使用函數用於製造Ajax調用,而不是寫的AJAX事件綁定到元素,而不是回調,使用像http://phery-php-ajax.net庫,如果你使用的是PHP