我正在开发一个应用程序,我大量使用 AJAX 调用将部分 MVC 视图导入到我的 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 中?每次将部分视图拉入 DOM 时,JS 是否会被抛在后面?
该脚本已大大简化,但一个示例是 manager 可以为 null,即使在它被初始化之后也是如此。我的猜测是 DOM 中可能有多个实例......
似乎我可以通过将整个 JS 块包装在一个自调用闭包中来解决这个问题,但我不确定这是否有必要......我想知道是否有人对为什么需要闭包有一个很好的解释。我的理论是它可以防止在 DOM 中建立多个版本的 Partial View 脚本块......