Исходя из обильных комментариев, которые я видел, я бы предложил один из следующих:
Вариант 1 :
- На главной странице сразу вызовите функцию, которая запрашивает информацию в вызове json. Это означает, что всякий раз, когда страница изменяется, она запрашивает новую информацию.
- Сохраняйте интервал 15 минут на случай, если пользователь будет сидеть на одной странице в течение 15 минут.
Вариант 2 :
Используйте частичные обновления AJAX для обновления только основного содержимого страницы. Если браузер не запрашивает новые страницы целиком, код на главной странице фактически никогда не обновляется. Звучит так, как будто вы ожидали, что сайт будет вести себя, но для того, чтобы это произошло, потребовалось немало доработок.
Объяснение
Я думаю, что главное недоразумение здесь в том, что происходит, когда пользователь переходит на новую страницу.
Возможно, вы слышали раньше, что сеть не имеет статуса. Это означает, что когда вы находитесь на веб-странице и переходите на новую страницу, все содержимое страницы, на которой вы находитесь, отбрасывается, и сервер передает вам совершенно новую страницу - сверху вниз. Ни один из HTML на исходной странице не сохраняется.
Использование главных страниц ничего не меняет. Главные страницы на самом деле просто используются в качестве оберток на стороне сервера, так что он знает, как включить верхний и нижний колонтитулы в каждую страницу, которую вы отправляете обратно. Вы по-прежнему будете отправлять обратно совершенно новую страницу.
Для вашего примера это означает, что отмена запроса json - единственная разумная вещь для браузера. Вы сделали запрос AJAX на некоторую информацию, и пока он ожидает ответа, пользователь перешел на новую страницу. Браузер знает, что сервер доставит совершенно новую страницу с совершенно новым html, поэтому он выбрасывает текущую страницу. Div, который должен был быть обновлен буквально, больше не существует.