2011-05-16 124 views
0

我有一個簡單的html頁面jQuery的AJAX加載/卸載HTML + JavaScript的

<a onclick="doSomething();">do something</a> 
<script type="text/javascript"> 
function doSomething(){ 
alert("something"); 
} 
</script> 

我想用jQuery的AJAX方法加載該頁面,並在一個div的結果追加。 一切正常,但我希望能夠卸載HTML + JavaScript內容。

例如,如果我清空加載html內容的div,是否也會卸載javascript函數。我知道有一個Javascript垃圾收集器,但由於鏈接函數doSomething的參考,如果我刪除鏈接,我是否自動殺死了引用?

我之所以問這是因爲我將有更復雜的腳本連接到加載的HTML,我想確保如果我刪除了HTML,我將刪除以及爲javascript分配的內存。

此外,如果你知道一個不同的實現隨時告訴我。

對不起,我的英語不好。

感謝

如果你使用jQuery .load()方法

回答

0

,所產生的腳本將沿着標記和解析。

要卸載動態加載的JS,您需要使用您自己的名稱空間,然後您可以將其空出來。

App = {} // master namespace 

然後,當你加載一個頁面

App.aboutPage = { ... } // your dynamically loaded namespace for the "About page" 

當你完成

App.aboutPage = 0; 
+0

確定。但我如何卸載它們? – 2011-05-16 14:38:36

+0

如果您將該代碼保存在其自己的名稱空間中,則可以通過重置整個名稱空間來卸載它。上面的細節。 – wesbos 2011-05-16 17:15:06