Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免在局部视图中重新加载JavaScripts文件_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

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

避免在局部视图中重新加载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)

在我的项目中,我有一个很大的JavaScript文件(大于1MB),我在所有页面中都使用它,我把它放在_布局中,所有东西都正常工作,但当我想更新显示表的部分视图时,我会松开该部分视图和JavaScript文件之间的链接,如果我想在部分视图中重新加载它,用户需要浪费时间进行更改。我使用ajax更新局部视图。 我能做些什么来解决这个问题

我使用的Java脚本是:

我用来更新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中的事件会冒泡,因此您不必侦听表/列表中项目上的单个事件,而只需在列表本身上侦听一次。这样,当表更改时,新元素仍然会冒泡出它们的事件。

我想使用那个大文件,避免在局部视图中重新加载它