2017-02-03 7 views
0

Мы используем вилку Orangehill bootstrap-session-timeout, и она отлично работает, за одним исключением, и я не могу понять, как ее разрешить. Интересно, может ли кто-нибудь помочь включить свет для меня.Сброс bootstrap-session-timeout без обновления страницы

Сайт написан на PHP с помощью Bootstrap3 и JQuery3.

Нижний колонтитул каждой страницы содержит сценарий, который активирует бутстрап-сеанс-тайм-аут, но опция сброса таймера при каждом перемещении мыши не используется. Если в течение периода ожидания нет активности, появляется лента, и пользователю предоставляется опция «Оставаться на связи» или «Выйти».

Это прекрасно работает для сайта, однако у нас есть страница редактирования заказа, где пользователи могут добавлять, удалять и обновлять строки, которые находятся на заказ. Страница не обновляется во время редактирования. Чтобы добавить, удалить или обновить строки заказа, функции JS-вызовов вызывают функции JS, которые, в свою очередь, вызывают PHP-скрипты для выполнения обновлений, JS затем используется для динамического обновления содержимого экрана.

Нам необходимо сбросить счетчик тайм-аута сеанса каждый раз, когда пользователь обновляет заказ.

В идеале мы хотели бы вызвать функцию всякий раз, когда будет произведено обновление содержимого страницы, но ни одна из отдельных функций bootstrap-session-timeout, по-видимому, не доступна в нашей JS.

Надеюсь, что это имеет смысл и заблаговременно за помощь или указатели.

ответ

0

Поскольку никто не ответил на этот вопрос, я подумал, что уместно добавить мое решение, которое может быть не лучшим, но оно действительно работает.

В принципе, у нас есть страница ввода заказа, которая остается на месте во время ввода заказа. Таймер обратного отсчета продолжает работать, даже если пользователь может что-то делать на странице (у нас отключены опции ключа). Таким образом, даже если пользователь мог обновить заказ 5 минут назад (обновления обрабатываются через вызовы Ajax для PHP API), таймер обратного отсчета не сбрасывается, потому что страница не была перезагружена.

Мое решение состоит в том, чтобы записать временную метку в файл, на который вводится PHP-идентификатор сессии, каждый раз, когда загружается PHP-скрипт. Это относится к главной странице или к API. Таким образом, когда таймер обратного отсчета заканчивается, вызывается сценарий тайм-аута, и это проверяет, является ли последняя временная метка активности в файле до или после точки отсечки таймаута. Если это так, вызывается сценарий выхода, но если нет, текущая страница обновляется, что приводит к перезагрузке таймера обратного отсчета.

Смежные вопросы