AJAX 呼び出しを多用して部分的な MVC ビューを DOM にインポートするアプリに取り組んでいます。
変数が状態を失う奇妙な散発的な動作に気付きました。なぜこれが起こっているのかについての私の疑いを確認するのを誰かが助けてくれることを望んでいました
Ex私は次の部分的なビューを持っています: 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 に蓄積されるのを防ぐというものです...