Почему IE8, работающий на XP и Win7 Virtual Machine, удаляет историю, просматривая тот же сайт с маршрутизацией javascript?

317
Siddharth Pandey

Я использую sammy.js с моим веб-приложением asp.net mvc для маршрутизации на стороне клиента, чтобы обеспечить удобство работы на одной странице. Я создал демонстрационное приложение, которое отлично работает в IE9 + и других современных браузерах. Однако при работе в IE8 на XP и Win7 я сталкиваюсь со странной проблемой. Просматривая этот демонстрационный сайт, IE8 запоминает навигацию вперед и назад для начального просмотра, а затем полностью забывает об истории просмотра или шагах, которые я предпринял, чтобы добраться до текущей страницы. Таким образом, кнопка «Назад» отключается, поскольку история посещений не связана. Этого не происходит в других браузерах, и они запоминают страницы, которые я просматриваю.

Это ссылка на сценарий, который я написал, где я определил мои маршруты sammy.js.

Структура моего приложения такова: пользователь:

  • приходит на http://www.abc.com/
  • отображается страница входа в систему в соответствии с #/маршрутом
  • если аутентифицировано, отображается домашняя страница, которая является результатом действия поста ajax.
  • На домашней странице есть много вариантов, чтобы перейти на страницу сведений, которая является результатом действия поста ajax.

Теперь IE8 запоминает только некоторые из этих шагов, но продолжает самостоятельно удалять элементы истории в сеансе просмотра. Я пытался использовать скрипт отладчика IE, и не было обнаружено никаких ошибок.

На каждом маршруте я также пытался использовать alert(history.length);разные случайные числа, которых я не ожидал, например +1 при каждом посещении новой страницы. Затем я нашел эту информацию о поддержке на веб-сайте Microsoft. Отключение функции автоматического восстановления после сбоя не помогло в этом случае.

Я не могу выяснить причину этой странной проблемы. Коды отлично работает для других браузеров. Я также попытался сбросить IE8 на XP и Win7.

Было бы очень полезно, если бы кто-нибудь мог сказать мне, что я упускаю или делаю неправильно.

ура

0

1 ответ на вопрос

0
Siddharth Pandey

Я действительно пробовал много вещей, чтобы определить любую возможную причину проблемы выше. Даже переписал весь мой код навигации JavaScript и проверил код на стороне сервера.

Но единственное место, где я получил решение, находится на сайте: Enhanceie, в котором говорится, что в IE8 есть ошибка, которая выглядит следующим образом:

IE0012: IE Travellog прерывается при переходе назад / назад от страницы с большой формой POST. Если есть поле ввода формы со значением, превышающим 523 659 символов, при переходе от страницы, IE может очистить журнал путешествий текущего сеанса (аналогично в историю), отключив кнопки назад и вперед. Репродукции в IE6 и IE7.

Существуют следующие решения, к которым вы можете обратиться:

  • Проверьте поле ввода, содержащее много символов, как указано выше, и решите свою проблему.
  • Если у вас есть контроль над системой, в которой будет использоваться IE8, вы можете добавить следующий раздел реестра на этом компьютере. Не существует существующего ключа, поэтому вам нужно добавить новый:

    [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ TravelLog] "MaxSize" = dword: ffffffff

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

Похожие вопросы