jQuery.ajax({async: false})
仍然使用XMLHttpRequest對象嗎?jQuery的同步AJAX請求如何工作?
如果是這樣,請求如何同步?
有剛剛函數定義,允許由XHR推出異步請求被包裹在一個同步封裝內部的一些機制?
我問,因爲我想將異步函數調用包裝到同步包裝中。
編輯:
我想爲依存關係做到這一點。在加載所有外部依賴腳本之前,我不需要運行任何操作,但是,我寧願不同步加載每個文件。
基本上,我想這樣的:
require(['lib1.js','lib2.js'])
Library1Function();
Library2Function();
要直到兩個被加載的同時加載LIB1和LIB2,但塊。
我知道我可以用一個回調做到這一點,但是還是不行,如果我包括文件也包括以同樣的方式依賴。
EDITx2
之所以回調不工作:
# lib2.js
window.Library2Function = function(input) {
alert(input);
}
# lib1.js
require('lib2.js', function() {
window.Library1Function = function() {
window.Library2Function('Hi there');
}
});
# main.js
require('lib1.js', function() {
window.Library1Function();
});
的問題是,在main.js,該回調將得到被紅牌罰下一旦lib1.js加載和運行。 問題是,Library2Function
直到加載lib2.js纔會實際定義,發生後解析了lib1.js。
你能解釋'你的同步包裝'是什麼意思,你爲什麼需要它? – strager 2010-08-14 04:36:31
在您的編輯:爲什麼不回調工作?你能澄清一點嗎? – strager 2010-08-14 04:42:25
請參閱第二編輯。 – 2010-08-14 04:47:33