Jquery / Javascript: Как удалить файл JS для страницы, которая не используется на текущей странице - PullRequest
0 голосов
/ 02 сентября 2018

В основном у меня есть 4 просмотра на моей странице (4 различных раздела на одной HTML-странице), я скрываю и показываю требуемые просмотры на основе нажатия кнопки.

У меня есть 4 отдельных файла JS для этих 4 представлений. Исходя из того, на какой странице находится пользователь, я загружаю страницу JS с помощью команды

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

Я хочу удалить все неиспользуемые JS (JS, которые используются для других страниц), когда пользователь переходит на 2-ю страницу, и должна быть загружена только Page2.js, в настоящее время, когда пользователь переходит на 2-ю страницу (от 1 до 2), оба Page1.js и Page2.js загружаются.

$.getScript может загрузить JS, но есть ли команда или способ удалить JS со страницы и динамически загрузить файл JS?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Спасибо за ответ, мне удалось выяснить проблему и найти обходной путь для этого. По сути, у меня были некоторые общие функции в Page1 JS и Page2 JS, поэтому я хотел, чтобы некоторые функции в моем Page2 JS не запускались, когда я использую Page1, но они выполнялись из-за того, что они использовали одинаковые модальные и формальные идентификаторы отправки.

Я объявил переменную в JS и на основании этого убедился, что функции в Page2 JS не работают, когда я нахожусь в Page1

    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;
0 голосов
/ 02 сентября 2018

Вот хороший пост, который объясняет это, но вы можете просто удалить элемент <script>, который вы не используете:

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

А в jQuery:

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