【问题标题】:Jquery/Javascript: How to Remove JS file for a page which is not being used in current pageJquery/Javascript:如何删除当前页面中未使用的页面的 JS 文件
【发布时间】:2018-09-02 05:43:35
【问题描述】:

基本上我的页面中有 4 个视图(单个 HTML 页面中有 4 个不同的部分),我根据按钮单击隐藏和显示所需的视图。

对于这 4 个视图,我有 4 个单独的 JS 文件。基于用户所在的页面,我正在使用命令加载 JS 页面

    //Page1
    if (current_page == 'Page1') {
        $.getScript("/js/Page1.js");
    }

当用户导航到第二页时,我想删除所有未使用的 JS(用于其他页面的 JS)并且只加载 Page2.js,当前当用户导航到第二页(Page1 到 Page2)时,@987654323 @ 和 Page2.js 正在加载中。

$.getScript 可以加载 JS,但是有没有命令或方法可以从页面中删除 JS 并动态加载 JS 文件?

【问题讨论】:

  • 不,亲爱的,您无法撤消加载的 js,您所能做的就是清理您的实际代码,删除未使用的脚本/插件。
  • @Arvind clean up your actual code 是什么意思?我没听懂。

标签: javascript jquery html getscript


【解决方案1】:

感谢您的回复,我能够找出问题和一些解决方法。 基本上我在 Page1 JS 和 Page2 JS 中有一些通用函数,所以我希望我的 Page2 JS 中的一些函数在我使用 Page1 时不运行,但由于它们使用相同的模态和表单提交 ID,它们被执行。

我在 JS 中声明了一个变量,基于此,我确保当我在 Page1 中时,Page2 JS 中的函数没有运行

    var Page_Checker = "";
    //Page1
    if (current_page == 'Page1') {
        $.getScript("/js/Page1.js");
        Page_Checker = "THIS_IS_PAGE1"
    }

使用Page_Checker 并确保函数没有在其他 JS 文件中运行。 也许你可以在其他 JS 文件中做这样的事情:

if(Page_Checker != "THIS_IS_PAGE1")
    return;

【讨论】:

    【解决方案2】:

    Here's 一个很好的解释它的帖子,但你可以做的是删除你不使用的 <script> 元素:

    <script id="page1script" src="/js/Page1.js"></script>
    

    在 jQuery 中:

    if (current_page != 'Page1') {
        $("#page1script").html().remove();
    }
    

    【讨论】:

    • 技术上似乎没有任何区别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多