Может ли метод jQuery load () действительно служить альтернативой iFrames? - PullRequest
0 голосов
/ 09 апреля 2019

Я создаю JSP, которая разделена на две части

  • В левой части дерева есть дерево
  • В правой части должен отображаться другой JSP, который показывает детали узла, выбранного в дереве.

Для простоты давайте назовем главную страницу main.jsp, а страницу с подробностями item_details.jsp

Обе эти страницы являются самостоятельными страницами и поставляются с набором файлов JS и CSS, указанных в соответствующих тегах <head>.

Я могу точно реализовать это представление, если использую iframes. Тем не менее, я хотел бы знать, могу ли я использовать jQuery.load () для того же самого?

Я сделал прототип и обнаружил несколько преимуществ использования jQuery.load () по сравнению с iframes:

  1. проще и аккуратнее
  2. Скрипты в item_details могут беспрепятственно обращаться и работать с JS-функциями / переменными main.jsp
  3. Я лично считаю, что это совместимо с большинством современных браузеров, а также обратно совместимо (пожалуйста, исправьте меня, если я ошибаюсь)

Однако я застрял с одной проблемой, изложенной ниже:

Если мой item_details.jsp ссылается на внешний файл JS, который обрабатывает событие click для одной из его кнопок, то каждый раз, когда я вызываю функцию load (), браузер снова загружает отдельную копию того же файла JS. Это приводит к тому, что событие Click обрабатывается несколько раз.

Есть ли способ выгрузить обработчики событий Javascript из item_details.jsp?

Я пытался использовать функцию detach() jQuery, но это уничтожило элементы, но я думаю, что это не отсоединяет прослушиватели событий для каждого отдельного элемента в дереве DOM.

Я работал с iframe ранее, и я понимаю, что страница внутри iframe выполняется в отдельном контексте, решая, таким образом, мою проблему. Тем не менее, я хотел бы посмотреть, есть ли альтернатива, особенно потому, что в настоящее время я вижу много приложений онлайн, которые отображают аналогичное представление без фреймов. Хотите знать, как этого можно достичь?

Может ли кто-нибудь указать мне правильное направление?

Спасибо, Шрирам Шридхаран

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...