避免在局部视图中重新加载JavaScripts文件
在我的项目中,我有一个很大的JavaScript文件(大于1MB),我在所有页面中都使用它,我把它放在_布局中,所有东西都正常工作,但当我想更新显示表的部分视图时,我会松开该部分视图和JavaScript文件之间的链接,如果我想在部分视图中重新加载它,用户需要浪费时间进行更改。我使用ajax更新局部视图。 我能做些什么来解决这个问题 我使用的Java脚本是:避免在局部视图中重新加载JavaScripts文件,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,在我的项目中,我有一个很大的JavaScript文件(大于1MB),我在所有页面中都使用它,我把它放在_布局中,所有东西都正常工作,但当我想更新显示表的部分视图时,我会松开该部分视图和JavaScript文件之间的链接,如果我想在部分视图中重新加载它,用户需要浪费时间进行更改。我使用ajax更新局部视图。 我能做些什么来解决这个问题 我使用的Java脚本是: 我用来更新opartial视图的Ajax是: <script> function EditClick(id, pg)
我用来更新opartial视图的Ajax是:
<script>
function EditClick(id, pg) {
var model = {
CurrentPage: pg,
SortColumn: '@Model.SortColumn',
SortStatus: '@Model.SortStatus',
id: id,
};
var formDiv = $("#rplaceInsert");
$.ajax({
cache: false,
type: "Post",
url: "@Url.Action("EditSurgeryType", "SurgeryType")",
contentType: 'application/json',
data: JSON.stringify(model)
,
success: function (data) {
formDiv.html(data);
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
}
函数EditClick(id,pg){
var模型={
当前页面:pg,
SortColumn:“@Model.SortColumn”,
SortStatus:“@Model.SortStatus”,
id:id,
};
var formDiv=$(“#rplaceInsert”);
$.ajax({
cache:false,
类型:“Post”,
url:“@url.Action(“EditSurgeryType”、“SurgeryType”)”,
contentType:'应用程序/json',
数据:JSON.stringify(模型)
,
成功:功能(数据){
html(数据);
},
错误:函数(xhr、ajaxOptions、thrownError){
}
});
}
这与重新加载无关。一旦文件在浏览器中加载一次,它将保持缓存状态,因此告诉它在多个位置加载只需从缓存中加载,只要它都在同一个域中即可 也就是说,您的问题在于JQuery不会自动将其选择器应用于添加到DOM中的新元素。它不是主动监视的,因此新元素不会获取事件或被处理,除非您显式地这样做 您可以重构脚本,使应用于局部视图的部分在其自己的功能中。这样,当局部视图发生更改时,可以调用该函数将jQuery选择器应用于它们
如果您所关心的只是将的事件连接到表或列表中,那么您可以通过将这些事件放在DOM中较高的、不会更改的元素上来“延迟”这些事件。Javascript中的事件会冒泡,因此您不必侦听表/列表中项目上的单个事件,而只需在列表本身上侦听一次。这样,当表更改时,新元素仍然会冒泡出它们的事件。我想使用那个大文件,避免在局部视图中重新加载它