Приложение, которое я разрабатываю, построено вокруг jQuery Mobile и некоторых Ajax для обновления частей страницы. Как и сайты, использующие автоматическое обновление, я хочу остановить обновление после некоторого условия (время/видимость/и т. Д.), Поэтому мой сервер не обманывается ненужными запросами. Приложение имеет экран состояния, который обычно проверяется пользователем, и, в идеале, мои скрипты будут знать, что окно браузера сосредоточилось, и было бы подходящим временем для обновления. Я делал это раньше в настольном WebApps, но я заметил много вариаций на подвижную части между различными платформами и браузерами, например:Как определить фокус браузера на мобильных устройствах?
- window.onfocus() делает/не срабатывает, когда выгоды браузера фокус
- window.onfocus() не/не срабатывают, когда вкладки переключаются в браузере
- Javascript является/не подвешен между закладками переключателями и/или переключателями от браузера
Лучшее, что я смог сделать до сих пор, - это набор эвристик, которые смотрят на доступные события +, когда был связанное с пользователем, но оно неудобно и приводит к тому, что пользователь перескакивает назад на страницу и должен обновляться вручную. Не хорошо.
Любые умные приемы для решения этой проблемы?
Альтернативным решением может быть проверка ввода пользователем. Как насчет того, чтобы вы устанавливали текущее время в переменной каждый раз, когда пользователь взаимодействует со страницей. Таким образом вы можете создать правило, которое вызывает только вызов ajax, если страница использовалась в течение последней минуты или двух. –
Я сейчас это делаю. Это помогает, но в моем приложении есть обычный случай, когда пользователь просто переключается на веб-страницу или разблокирует свой телефон, чтобы посмотреть состояние (не требуется взаимодействие). – LVB