нарушение кэширования в браузере HTML Выбор списка Ajax-фильтрация: запускается событием onchange - PullRequest
0 голосов
/ 03 января 2011

У меня есть списки выбора HTML, которые позволяют пользователям искать элементы. У меня также есть простая реализация Ajax, которая обеспечивает фильтрацию, когда пользователи выбирают элементы - запускается при срабатывании события onchange элемента select , когда щелкают опции.

App. логика : пользователь выбирает элементы и нажимает «отправить» -> переходит на страницу результатов поиска.

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

например. Посмотрите мою страницу поиска по умолчанию.

Поиск продуктов питания Пищевые продукты по ингредиентам

  1. Ингредиент

    • Все ингредиенты *
    • Хлеб
    • Сыр
  2. ТИПЫ ИНГРЕДИЕНТОВ

    • Все типы ингредиентов *
    • Сыр чеддер
    • Белая булочка
    • Белый сыр
    • булочка из непросеянной муки

По умолчанию параметры " Все ингредиенты " и " Все типы ингредиентов " выбираются по умолчанию, когда страница поиска загружает страницу поиска.

Пример работы простого фильтра и сценарий проблемы при нажатии кнопки «Назад» в браузере.

Сценарий: пользователь затем выбирает хлеб, а вызов Ajax фильтрует второй список только для хлебных изделий. Затем пользователь выбирает белую булочку и нажимает кнопку поиска

  1. Ингредиент

    • Все ингредиенты *
    • Хлеб
    • Сыр
  2. ТИПЫ ИНГРЕДИЕНТОВ

    • Все типы ингредиентов *
    • Белая булочка
    • булочка из непросеянной муки

Затем пользователь просматривает результаты поиска, которые являются правильными, но при переходе назад с помощью нажатия кнопки браузера назад , это представленное представление. Выборы являются правильными и неповрежденными, однако фильтрация разваливается.

  1. Ингредиент

    • Все ингредиенты *
    • Хлеб
    • Сыр
  2. ВИДЫ ИНГРЕДИЕНТОВ

    • Все типы ингредиентов *
    • Сыр чеддер
    • Белая булочка
    • Белый сыр
    • булочка из непросеянной муки

Я использую xmlHTTP = new XMLHttpRequest () из моей реализации ajax.

Вопросы: Буду признателен за ответы на вопросы:

  • что вызвало это?
  • Как я могу решить эту проблему?

1 Ответ

1 голос
/ 03 января 2011

Не видя код, я подозреваю, что ваш код фильтрации работает только при срабатывании события select.Нажатие кнопки «Назад» перезагружает страницу, включая предыдущие значения / выборы элемента формы, но событие выбора не запускается.

Ваш код должен запускать логику фильтрации как после загрузки страницы, так и при выборесобытие сработало.

...