Я создаю JSP, которая разделена на две части
- В левой части дерева есть дерево
- В правой части должен отображаться другой JSP, который показывает детали узла, выбранного в дереве.
Для простоты давайте назовем главную страницу main.jsp
, а страницу с подробностями item_details.jsp
Обе эти страницы являются самостоятельными страницами и поставляются с набором файлов JS и CSS, указанных в соответствующих тегах <head>
.
Я могу точно реализовать это представление, если использую iframes. Тем не менее, я хотел бы знать, могу ли я использовать jQuery.load () для того же самого?
Я сделал прототип и обнаружил несколько преимуществ использования jQuery.load () по сравнению с iframes:
- проще и аккуратнее
- Скрипты в
item_details
могут беспрепятственно обращаться и работать с JS-функциями / переменными main.jsp
- Я лично считаю, что это совместимо с большинством современных браузеров, а также обратно совместимо (пожалуйста, исправьте меня, если я ошибаюсь)
Однако я застрял с одной проблемой, изложенной ниже:
Если мой item_details.jsp
ссылается на внешний файл JS, который обрабатывает событие click
для одной из его кнопок, то каждый раз, когда я вызываю функцию load (), браузер снова загружает отдельную копию того же файла JS. Это приводит к тому, что событие Click обрабатывается несколько раз.
Есть ли способ выгрузить обработчики событий Javascript из item_details.jsp
?
Я пытался использовать функцию detach()
jQuery, но это уничтожило элементы, но я думаю, что это не отсоединяет прослушиватели событий для каждого отдельного элемента в дереве DOM.
Я работал с iframe ранее, и я понимаю, что страница внутри iframe выполняется в отдельном контексте, решая, таким образом, мою проблему. Тем не менее, я хотел бы посмотреть, есть ли альтернатива, особенно потому, что в настоящее время я вижу много приложений онлайн, которые отображают аналогичное представление без фреймов. Хотите знать, как этого можно достичь?
Может ли кто-нибудь указать мне правильное направление?
Спасибо,
Шрирам Шридхаран