我正在開發一個應用程序,我大量使用AJAX調用將部分MVC視圖導入到DOM中。DOM中的全局變量的構建
我注意到一些奇怪的零星行爲,其中的變量將失去他們的狀態。 我希望有人能幫助我確認我爲什麼發生這種情況
懷疑防爆我有以下的局部視圖: JS:
--begin script tags
var var1 = 1;
var var2 = 2;
var manager = null;
$(document).ready(function()
{
//Do stuff
manager = new Manager();
});
--End script tag
<div>
Markup in partial view
</div>
局部視圖被一遍又一遍的導入我的DOM如果用戶點擊一個按鈕。它每次都插入到相同的元素中,每次都有效地覆蓋自己。 雖然我的問題是:可以多次將此部分加載到DOM中導致腳本塊被添加到我的DOM多次? JS是否會被拋在後面,每次部分視圖被拖入DOM中時都會拋出一次?
劇本已經大大簡化,但一個例子是,管理者可以爲空,它被初始化後還是一樣。我的猜測是,它有可能在DOM多個實例...
好像我可以通過包裝在自整JS調用塊封解決這個問題,但我不知道這是否是必要的......我想知道是否有人對需要關閉的原因有一個很好的解釋。我的理論是,它可以防止在局部視圖腳本塊的多個版本的DOM構建起來......
是的我認爲這是問題。像Manager這樣的對象會在執行過程中改變狀態(被初始化等),看起來像關閉是一種正確和安全的方式。 – TGH
實際上,你的$(document).ready(function(){...});應該可以很好地作爲閉包。 –
但是,假設每次都會覆蓋var1和var2是否安全。有沒有重複的機會? – TGH