Max
Новичок
"Баг" сессии при использовании jquery (проблема решена).
Доброго времени суток.
Возможно у кого нибудь была подобная ситуация, не могу пока понять в чем проблема.
Описание проблемы:
Представим есть 2 блока, выводящихся на страницу - Ф(фильтр) и Р(результат). Оба блока выводятся на страницу при помощи jquery.
При любом изменении в блоке Ф (допустим это список категорий с чекбоксами), через пару секунд после завершения всех действий срабатывает код который считывает состояние блока Ф, далее отсылает данные через jquery в другой php код который принимая данные из блока Ф обрабатывает их, тут же заносит результат в сессию, и тут же используя уже данные из сесии выводит соответственный результат в блок Р (допустим записи, соответствующие выбраным с помощю чекбоксов в блоке Ф категориям). После этого сразу же срабатывает код который переинициализирует блок Ф с учетом данных, находящихся уже в сесси (к примеру выводит тот же список чекбоксов с категориями, но кроме того отмечает ранее выбраные категории используя даные, которые мы занесли в сесию).
Все работает как и задумано, но в 1 случае из 20-30 происходит следующее: даные заносятся в сесию (все хорошо), результат в блоке Р выводится соответственный как и задумано (все хорошо), после чего происходит переинициализация фильтра где фильтр почему то видит даные в сессии которые соответствуют предидущим изменениям в блоке Ф.
Пример:
Действие 1.
- отмечаем 3 чекбокса из 20 в блоке Ф;
- получаем результат, соответствующий трем выбраным категориям в блоке Р;
- автоматическая переинициализация фильтра, выводится тот же список чекбоксов но три из них отмечены как и должно быть.
Действие 2.
- отмечаем еще 3 чекбокса из 20 в блоке Ф (получается отмечено уже 6 чекбоксов);
- получаем результат, соответствующий 6ти выбраным категориям в блоке Р (все правильно, значит сесия обновлена правильными значениями фильтра);
- автоматическая переинициализация фильтра, список чекбоксов но по прежнему отмечены только три из них, поскольку в даный момент из даного документа почему то видно даные сесии существовавшие при 1 действии.
P.S.: повторюсь, обычно это происходит на 5том-30том действии после чего опять все работает нормально, после чего баг может появится на любом и следующего множества действий (может появиться через 5 действий, может через 50). Другими словами, я не заметил никакой закономерности в возникновении ситуации (примерное множество действий произведенных мной для получения бага - более 200, ошибка возникла 5-10 раз).
P.P.S.: зарание спасибо за любую помощь
Доброго времени суток.
Возможно у кого нибудь была подобная ситуация, не могу пока понять в чем проблема.
Описание проблемы:
Представим есть 2 блока, выводящихся на страницу - Ф(фильтр) и Р(результат). Оба блока выводятся на страницу при помощи jquery.
При любом изменении в блоке Ф (допустим это список категорий с чекбоксами), через пару секунд после завершения всех действий срабатывает код который считывает состояние блока Ф, далее отсылает данные через jquery в другой php код который принимая данные из блока Ф обрабатывает их, тут же заносит результат в сессию, и тут же используя уже данные из сесии выводит соответственный результат в блок Р (допустим записи, соответствующие выбраным с помощю чекбоксов в блоке Ф категориям). После этого сразу же срабатывает код который переинициализирует блок Ф с учетом данных, находящихся уже в сесси (к примеру выводит тот же список чекбоксов с категориями, но кроме того отмечает ранее выбраные категории используя даные, которые мы занесли в сесию).
Все работает как и задумано, но в 1 случае из 20-30 происходит следующее: даные заносятся в сесию (все хорошо), результат в блоке Р выводится соответственный как и задумано (все хорошо), после чего происходит переинициализация фильтра где фильтр почему то видит даные в сессии которые соответствуют предидущим изменениям в блоке Ф.
Пример:
Действие 1.
- отмечаем 3 чекбокса из 20 в блоке Ф;
- получаем результат, соответствующий трем выбраным категориям в блоке Р;
- автоматическая переинициализация фильтра, выводится тот же список чекбоксов но три из них отмечены как и должно быть.
Действие 2.
- отмечаем еще 3 чекбокса из 20 в блоке Ф (получается отмечено уже 6 чекбоксов);
- получаем результат, соответствующий 6ти выбраным категориям в блоке Р (все правильно, значит сесия обновлена правильными значениями фильтра);
- автоматическая переинициализация фильтра, список чекбоксов но по прежнему отмечены только три из них, поскольку в даный момент из даного документа почему то видно даные сесии существовавшие при 1 действии.
P.S.: повторюсь, обычно это происходит на 5том-30том действии после чего опять все работает нормально, после чего баг может появится на любом и следующего множества действий (может появиться через 5 действий, может через 50). Другими словами, я не заметил никакой закономерности в возникновении ситуации (примерное множество действий произведенных мной для получения бага - более 200, ошибка возникла 5-10 раз).
P.P.S.: зарание спасибо за любую помощь