我正在嘗試做一些動態加載,包括javascript,css和html文件。訪問jquery中的數據.when .done函數(也是eval那個邪惡?)
我願做這樣的:
$.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調用,並且服務器正在響應正確的文件,但是一旦完成所有調用,如何訪問它們?因此,我不會將css/js應用於尚未存在的HTML等。另外,我所做的是將javascript文件作爲字符串返回,然後在ejval()函數中執行它。我的理解是,這是一個可以使用的eval,因爲它的文件被我們自己的服務器返回,所以我不知道它是如何被篡改的。這個假設是否正確?
此外,在我的appendCss函數中,我只是將它添加到頭部的「樣式」元素。這有什麼大問題嗎?我正在使用所有這些來創建「基於窗口小部件/應用程序的」功能,其中我爲每個「應用程序」都有一個js,css和html,並且我只想在需要時查詢服務器,並在應用程序加載時。
你有建議如何處理這個問題嗎?或者你的建議是不要使用eval? – Evan 2012-02-07 17:08:15