AMD スタイルのパターンを使用して作成しているプラグインにスクリプトをロードしようとしています。プラグインの依存関係を最小限に抑えたいため、AMD ライブラリ (curl、require) は使用していません。スクリプトを読み込んでオブジェクトを希望どおりに返すことに成功しましたが、スクリプトがクロムのデバッガーに表示されないため、スクリプトのデバッグに苦労しています (私はまだ Firefox を試していませんが、私は開発用のクロム。)
問題について何か助けや洞察を提供できますか? このスクリプトの改善点はありますか?
_loadRendererAsync: function () {
console.info("loading renderers");
var settings = $.graphicsSettings();
var renderers = settings.renderers.slice(0);
while (renderers.length > 0) {
var renderer = renderers.shift();
if ($.isPlainObject(settings._renderers[renderer])) { // if renderer has been cached, load it
return $.when(settings._renderers[renderer]);
} else if ($.isPlainObject(renderer)) { // if the renderer is a function, return it directly
return $.when(renderer);
} else if (typeof renderer === "string") { // if the renderer is a string dynamically load it
// figure out if the rendere is a url
var pathToLoad = renderer;
if (renderer.indexOf("/") == -1)
pathToLoad = settings.basePath + "jqgl." + pathToLoad + ".js";
var dfd = $.Deferred();
// **** here is the ajax call to pull down the script ****
$.ajax({
url: pathToLoad,
dataType: "text",
type: "get",
cache: true
}).done(function (text) {
settings._renderers[renderer] = eval(text);
dfd.resolve(settings._renderers[renderer]);
});
return dfd;
}
}
}