避免在部分视图中重新加载JavaScripts文件

时间:2017-02-25 18:56:04

标签: javascript jquery ajax asp.net-mvc

在我的项目中,我有一个大的JavaScript文件(大于1 MB)我在所有页面中使用,我把它放在_Layout中并且每件事情都正常工作但是当我想更新显示表格的局部视图时我松了链接在部分视图和JavaScript文件之间,如果我想在部分视图中重新加载它,用户需要浪费时间进行更改。我使用ajax来更新部分视图。 我该怎么做才能解决这个问题?

我使用的Java脚本是:jp.repaint()

我用来更新opartial视图的Ajax是:

<script src="~/Content/js/vendor.min.js"></script>

1 个答案:

答案 0 :(得分:0)

这与重新加载无关。一旦文件在浏览器中加载一次,它将保持缓存,因此告诉它在多个地方加载只需将其从缓存中加载,只要它们都在同一个域中。

那就是说,你的问题是因为JQuery没有自动将它的选择器应用到添加到DOM的新元素。它不会主动观看,因此新元素不会获得事件或被处理,除非您明确这样做。

您可以重构脚本,以便应用于局部视图的部分属于自己的功能。这样,当部分视图发生更改时,您可以调用该函数将jQuery选择器应用于它们。

如果你所关心的只是在表或列表中挂钩事件,你可以推迟&#34;这些事件通过将它们放在DOM中更高的元素上而不会发生变化。 Javascript中的事件冒泡而不是在表/列表中的项目上监听单个事件,您只需在列表本身上监听它们一次。这样,当表格发生变化时,新元素仍然会冒出他们的事件。