$.getScript
特定のページに必要なスクリプトをロードする非同期呼び出しに取り組んでいます。AJAX呼び出しを介してスクリプトを取得し、必要なスクリプトを取得してから、関数で順番にロードします。スクリプトが完全にロードされてDOMに配置され、使用できるようになったときではなく、呼び出しがすぐに行われる$.when
理由がわかりません。.done()
。
たとえば、AJAX呼び出しはこれを返します:
['js/jquery.cookie.js', 'js/leaflet.js', 'js/index.js']
このコードで:
var loadScripts = function(callback)
{
$.getJSON('url.php', function(response)
{
$['when'].call(this, response).done(function()
{
callback();
});
});
};
それを呼び出す:
loadScripts(function()
{
// All scripts are loaded and ready to use
// but the callback is fired immediately
// L is undefined
var map = L.map('map-view').setView([51.505, -0.09], 13);
});
Head.jsやRequire.jsなどのライブラリを使用したくないので、ロードして、ロードされた関数が使用できるようになるまで待機できる単純なスクリプトが必要です。スクリプトリストは変更される可能性があり、順序も変更される可能性があるため、これ$.when($.getScript(), $.getScript()).done()
は私が探しているものではないことに注意してください。
どうすればこれにアプローチできますか?