Поддержание функционирования веб-страницы Ajax после нескольких часов простоя - PullRequest
2 голосов
/ 30 января 2010

У меня есть одностраничное веб-приложение, поэтому нет обновления страницы. Иногда я оставляю страницу открытой на ночь и возвращаюсь утром и снова начинаю с ней взаимодействовать. Обычно я нахожу, что должен освежиться. Javascript работает неправильно - редактирование на месте загружает странные данные, ajax-вызовы не запускаются ... Это не имеет ничего общего с бэкэндом, похоже, это просто браузер, сбрасывающий память или что-то в этом роде Там нет сессий.

Как календарь Google остается открытым в течение 3 дней и по-прежнему генерирует оповещения о событиях?

У меня есть звонок «keep alive», который срабатывает каждые 5 секунд в попытке удержать браузер в напряжении, но это не помогло. В чем подвох? Есть ли способ сказать браузеру навсегда хранить все в памяти?

(Я уверен, что это решается во многих местах в Интернете, но я не могу понять, что искать.)

Ответы [ 2 ]

1 голос
/ 05 февраля 2010

Возможные варианты:

  • Проверьте на нескольких разных браузерах, чтобы увидеть, есть ли у них одна и та же проблема.
    • Если они это сделают, то это почти на 100% определенно что-то в вашем коде.
    • В противном случае это, вероятно, что-то с вашим текущим браузером и, возможно, некоторое взаимодействие с какой-то частью вашего кода.
  • Кажется тривиальным, но многие люди смотрят на это в javascript, но убедитесь, что вы удаляете / освобождаете все, что выделяете с помощью нового.
  • Если вы используете какие-либо сторонние библиотеки, рассмотрите возможность их обновления.или проверяя их форумы.

Удачи!

0 голосов
/ 30 января 2010

Когда вы обновляете страницу, нужно ли выполнять какую-либо аутентификацию из-за истечения времени ожидания сеанса или чего-то еще? Потому что, если все, что вам действительно нужно сделать, это нажать F5, и вы готовы к работе, я бы предложил вам создать в своем приложении таймер «ожидания», который выполняет window.reload () каждый час, если нет взаимодействия (сброс IOW). этот таймер каждый раз, когда происходит взаимодействие)

Надеюсь, это поможет

...