CSSファイルまたはJSファイルを動的にインクルードするための小さな関数を記述しました。 jquery関数$.getScript()
を使用してJSファイルを読み込みます。AJAX呼び出しが終了していない間にJS関数の実行を停止します。
私のAJAXコールが終了する前に私の関数が返ることを防ぎたいと思います。
私はこのような何かを試してみましたが、それは動作しません:
CAPTIVEA.resources._includeResource = function(resource) {
var ret = false;
if (CAPTIVEA.resources.isIncluded(resource))
{ // Resource already included => do nothing
console.log('CAPTIVEA.resources : "' + resource + '" is already included.');
ret = true;
}
else
{ // Resource not included => try to include it
var resType = CAPTIVEA.resources.getType(resource);
switch (resType)
{ // Check resource type to know how to include it
case 'js':
$.when(
$.getScript(resource, function(data, textStatus){
console.info('CAPTIVEA.resources : "' + resource + '" dynamically loaded.'); //success
})
).done(function(){
ret = true;
});
break;
case 'css':
// Load CSS file ...
break;
default:
console.error('CAPTIVEA.resources : "' + resource + '" is not an includable resource.');
break;
}
}
return ret;
}
おかげで、私はこのオプションを知りませんでしたあなたは代わりにコールバックを使用する必要があります。 – Elorfin
しかしこれは決して決して行うべきではありません。 Ifは、ユーザー入力のためにページ(および場合によってはブラウザー)をブロックするため、ユーザーエクスペリエンスが低下します。 – RoToRa
@RoToRa私は同意します –