$.getScript()
下去返回一個jqXHR承諾,該承諾可以分配給以後使用。
你可以寫......
var somejsPromise = $.getScript('some.js', function() {
//Call some function in some.js
});
...但它最好不要使用全局命名空間,所以你可以使用jQuery的命名空間:
$.somejsPromise = $.getScript('some.js', function() {
//Call some function in some.js
});
如果腳本「 some.js'不加載,你還應該包含一些錯誤處理。最起碼,記錄錯誤:
$.somejsPromise = $.getScript('some.js', function() {
//Call some function in some.js
}).then(null, function(error) {
console.log('getScript(some.js)', error);
});
此後,唯一安全的方法來運行「some.js」發的腳本,是使用分配承諾的.then()
方法:
$.somejsPromise.then(function() {
//Call some function in some.js
}, function() {
//handle the case that some.js fails to load.
});
如果some.js已加載,則回調將立即運行。
如果some.js尚未加載,則回調將排隊,並在加載some.js時運行。
如果some.js失敗(或將失敗),那麼錯誤處理程序將運行。
a.js和b.js如何加載? –