javascript、css、htmlファイルを含む動的ロードを実行しようとしています。
私はこのようにそれをしたいと思います:
$.when($.ajax(htmlPath), $.get(cssPath), $.ajax({
url: javascriptPath,
dataType: "text"
}))
.done(function(response){
// i want to pass the data for each of these to the respective functions
appendHtml(what goes here??);
appendCss(what goes here??);
executeJs(what goes here??);
})
.fail(function(){
console.log("failed");
});
そのため、応答コールバックをどのように分離するかについて混乱しています。現在、私の.done関数に表示される応答オブジェクトは、私が呼び出したHTMLファイルのみです。この関数は正しいajax呼び出しを行っており、正しいファイルはすべてサーバーによって応答されていますが、すべての呼び出しが完了したら、どうすればそれらにアクセスできますか?これが必要なので、まだ存在しないHTMLなどにcss / jsを適用しません。また、javascriptファイルを文字列として返し、executeJs関数内でeval()します。私の理解では、これはevalの使用としては問題ありません。これは、ファイルが独自のサーバーによって返されるため、改ざんされる可能性があるかどうかがわかりません。この仮定は正しいですか?
さらに、私のappendCss関数では、それを頭の「style」要素に追加しているだけです。これに大きな問題はありますか?私はこれらすべてを使用して、「ウィジェット/アプリベース」の機能を作成しています。各「アプリ」にjs、css、およびhtmlがあり、必要なときにサーバーにクエリを実行して、アプリを読み込んでいます。 。