Страницы

Поиск по вопросам

среда, 25 декабря 2019 г.

Как избавиться от кеширования контента модального окна Bootstrap 2.3.2

#bootstrap


Имеется стандартное модальное окно Bootstrap 2.3.2.
Оно запускается через Data API.

Код ссылки при клике на которой идет запуск модального окна.


 ВЫБРАТЬ ГОРОД




Как наверно всем понятно, в виде попытки решить проблему кеширования, при смене родительского
региона, в ссылке меняется часть URL а именно параметр rand и параметр region так же
меняется. То есть ссылка все время разная, как в атрибуте href так и в data-remote.

В итоге, иногда это решение работает а иногда нет.
Я вот думаю что эти костыли тут не к месту и создатели Bootstrap не настолько глупы
чтобы не справиться с этой проблемой "из коробки". Может как проще это можно решить?
Да и вообще решить...


  Атрибут data-baseurl добавлен мной для того чтобы скрипт брал базовый URL и на
основе его собирал новое значение для атрибутов href и data-remote
  
  Google Chrome Версия 53.0.2785.143 m

    


Ответы

Ответ 1



Вопрос актуален для широкий аудитории. На все поднимаемые вопросы необходимо давать подробный и четкий ответ. Ну раз вопрос актуален для широкой аудитории, то и ответ нужно давать для максимально широкой аудитории. Чтобы отгрузить данные модального окна при его закрытии, в Bootstrap 2.x можно использовать следующее: $('#CityModal').on('hidden', function() { $(this).removeData('modal'); }); А в Bootstrap 3 это выглядело бы вот так (https://github.com/twbs/bootstrap/pull/7935#issuecomment-18513516): $(document.body).on('hidden.bs.modal', function () { $('#CityModal').removeData('bs.modal') }); // Ну и более универсальный вариант $(document).on('hidden.bs.modal', function (e) { $(e.target).removeData('bs.modal'); }); Взято отсюда https://stackoverflow.com/a/18459248/5381547

Ответ 2



Вам нужно разрушать объект модального окна после каждого закрытия: $('body').on('hidden.bs.modal', '.modal', function () { $(this).removeData('bs.modal'); }); Реализация Пример реализации здесь: Plunker Update: jQuery('#RegionLink').on('hidden', function() { $('#CityLink').removeData('modal'); });

Комментариев нет:

Отправить комментарий