2014-02-02 4 views
1

У меня есть страница A, которая отображает текст из моей базы данных. Текст доступен для редактирования и получает автосохранение с использованием AJAX. Если пользователь уйдет с этой страницы, а затем вернется на страницу A, используя функции истории браузеров, страница не будет иметь последних данных (так как мы вернулись в историю). И пользователь будет редактировать старые данные, которые будут перезаписывать последние данные на сервере, когда он получит автосохранение.Сообщите, когда пользователь возвращается в историю браузера

Я предполагаю, что это исключительно проблема с интерфейсом, где мой сервер ничего не может с этим поделать. Какие решения можно использовать? Если бы было возможно обнаружить с помощью javascript, что пользователь вернулся в историю, тогда я мог бы просто отобразить текст, говорящий, что пользователь должен обновить страницу. Но возможно ли это? Или есть какие-то лучшие решения?

+0

Вы используете какой-либо фрейм на своем лицевом конце или просто чистый javascript? –

+0

@drew_w Я использую jQuery, но кроме этого просто чистый javascript. – lawls

+0

Возможно, это будет полезно -> https://developer.mozilla.org/en-US/docs/Web/API/window.onpopstate –

ответ

4

Существует множество вариантов и стратегий для такой ситуации.

  • Первое, что вы можете сделать, это попытаться отключить кеширование на странице. Вы можете использовать use meta tags.

  • Вы также можете отслеживать, когда пользователь нажимает кнопку «Назад», используя библиотеки, такие как this one. Вы можете отвечать либо на сервере, либо на клиенте, хотя вы хотите быть осторожным, потому что отключенная кнопка возврата может раздражать пользователей.

  • Если вам когда-либо случалось полагаться на использование фреймворка javascript, такого как AngularJS, вы, вероятно, можете отслеживать кнопку «Назад», используя фреймворк.

  • Наконец-то вы можете решить такие проблемы с тщательным дизайном страницы. Если данные на странице могут измениться, вы можете загрузить текущие данные с помощью ajax, прежде чем пользователь сможет его отредактировать. При этом ваш код загрузки будет работать, даже если пользователь использует кнопку «Назад». Взгляните на this stack для получения дополнительной информации!

Надеюсь, что эти предложения помогут!

+0

Это было тяжелее, чем я думал! Я думаю, что пойдет с загрузкой последних данных с помощью ajax во время загрузки страницы. Спасибо! – lawls

0

Если вы используете Jquery затем используйте/

$(document).on('pageshow', '#Content' ,function() 

вместо

$(document).ready(function() 

Это решит вашу проблему, яваскрипт файл, задний конец будет загружен, когда что отдельные загрузки страницы

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