この件に関してフォーラムに多くの質問があることは知っていますが、まだ答えが見つかりません...
jQuery に基づく JS アプリケーションがあります。ここで、Dojo に基づくいくつかのウィジェットを統合する必要があります。必要な場合にのみ Dojo とウィジェットをロードしたいので、これを非同期で実行したいと考えています。自分のサイトに Dojo を保存しているので、自分のスペースからロードします。
jQueryで使用しようとしているコードは次のとおりです。
$.getScript("/Content/3rd/dojo/dojo/dojo.js")
.done(function (script, textStatus) {
dojo.ready(function () {
dojo.require("dojo.io.script");
alert('Dojo ready!')
});
})
.fail(function (jqxhr, settings, exception) {
alert('error!');
});
私の問題は、非同期リクエストに必要な呼び出しを試みたときに最初から始まりdojo.require("dojo.io.script");
、次の URL - '/Example/io/script.js' から dojo.io.script をロードしようとしていることがわかります。ある場所。設定の問題を見逃しているようですが、どれがどれか理解できません... 誰かがそれを解決するのを手伝ってくれますか?
些細な質問かもしれませんが、私は Dojo を使用したことがなく、Dojo に基づくウィジェットとの迅速な統合が必要なだけで、私のメイン アプリケーションは jQuery です...
解決:
誰かが興味を持った場合に備えて、次のスクリプトを使用してウィジェットをロードします。
// Load Dojo and scripts for JSDraw2 asyncronously
dojoConfig = {
baseUrl: "/Content/3rd/dojo-1.8.3/dojo"
};
$.getScript("/Content/3rd/dojo-1.8.3/dojo/dojo.js")
.done(function (script, textStatus) {
dojo.ready(function () {
dojo.require("dojo.io.script");
var deferred = dojo.io.script.get({ url: "/Content/3rd/JSDraw2.1.4/JSDraw2.js" });
deferred.then(function () {
// init the Dojo widget...
oThis.jsDraw = new JSDraw(oThis.element.get(0));
}, function () {
alert('Cannot load Scilligence.JSDraw2.js');
});
});
})
.fail(function (jqxhr, settings, exception) {
alert('Cannot load Dojo.js');
});