Навигация с обратной кнопкой возвращает очень старую версию страницы в мобильном IE9 в Windows Phone 7.5

Я создаю новостной сайт с динамическим контентом, который часто обновляется (много раз в день). Количество пользователей сообщило об этой ошибке в Windows Phone 7.5 IE 9.0 Mobile:

  • Пользователь переходит к главной странице новостного сайта и видит свежую и обновленную версию страницы
  • Пользователь нажимает ссылку на статью и переходит к странице статьи
  • Пользователь нажимает кнопку браузера.

Ожидаемый результат:

После нажатия кнопки "Назад" пользователь видит переднюю страницу, точно содержимое, которое она увидела, прежде чем перейти к странице статьи.

Фактический результат:

Пользователь видит очень старую (неделю или около того) версию главной страницы.

Кто-нибудь еще видел эту ошибку в Mobile Internet Explorer 9? Как я мог предотвратить это?

Подробнее:

  • Ответ сервера содержит заголовок Cache-Control: max-age = 60. Я хотел бы сохранить его таким образом. Отключение кэширования браузеров не является вариантом.
  • В заголовках ответов или в метатегах HTML нет других директив, связанных с кешем.
  • Некоторые пользователи заявили, что эта проблема возникает и на других сайтах.
  • В соответствии с этим сообщением в блоге от MS (http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx) нажатие кнопки "Назад" не должно извлекать страницу с сервера, даже если кеширование страница не свежая. Это полностью нормально для меня, но НЕ нормально, если кэшированная страница - неделя.
  • Когда пользователь сначала переходит на наш сайт, они видят новую версию страницы. Кажется, что что-то мешает IE кэшировать эту страницу, и, таким образом, кнопка возврата возвращает очень старую кешированную версию.

Ответ 1

Это скорее всего проблема с кешированием в браузере. Я видел, как это происходит на нескольких сайтах, а также при просмотре старых версий страницы до загрузки страницы при первом переходе на одни и те же сайты.

Ответ 2

Невозможно решить причину проблемы. Но я бы использовал JQuery Address для выхода из этой ситуации путем программного использования кнопки "Назад".

Ответ 3

Это известная проблема, пока MS не придумает IE 10 с некоторыми расширенными функциями, которые будут там. Если вы нашли свое решение, то хорошо, но если нет, я могу дать вам просто идею.

Давайте рассмотрим часть решения. Когда пользователь просматривает страницы, вы можете создать динамический список, например  List<String> UrlVisitpages = new List<String>(); Теперь во время выполнения вы будете инициализировать этот список и заполнить с помощью пользователя uri. Затем, когда пользователь перемещается назад

OnBackKeyPress() вы обрабатываете событие. скажем handle = true; и загрузите последний uri UrlVisitPages в браузере как метод WebBrowser.Show("YourLastUriIndex");. и удалите последний указатель из списка другим способом, это будет повторяющаяся запись.

Если он снова отправится обратно, выполните ту же процедуру, иначе сделайте запись в списке. Когда пользователь закрывает приложение Dispose the List. Надеюсь, у вас есть идея.