HTML5 оффлайн странное поведение - PullRequest
0 голосов
/ 04 января 2012

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

Это основной трехстраничный статический веб-сайт, размещенный локально в IIS 7.5. Я создал папку c: \ inetpub \ wwwroot \ ManifestTesting, добавил ее в IIS как веб-приложение и добавил новый тип MIME text / cache-manifest для расширения .appcache. Я также использую FireFox 9.0 для тестирования, так как в нем есть функция автономного режима.

Я создал 3 html-страницы и добавил их в папку ManifestTesting:

  • index.htm - эта страница содержит 2 ссылки на page1.htm и page2.htm
  • page1.htm - просто содержит заголовок, который говорит, что страница 1
  • page2.htm - просто содержит заголовок, который говорит, что страница 2

Так что теперь, если я перейду к http://localhost/manifesttesting, если получу страницу индекса и смогу перейти на 2 страницы.

Затем я создал файл manifest.appcache и добавил его в папку ManifestTesting:

CACHE MANIFEST

CACHE:
index.htm
page1.htm
page2.htm

и добавил ссылку на файл манифеста в index.htm:

<html manifest="manifest.appcache">

Поэтому, если я очищаю всю историю и просматриваю index.htm, FireFox спрашивает, хочу ли я разрешить веб-сайту хранить данные для автономного использования. Я нажимаю кнопку «Разрешить», переключаю браузер в автономный режим, затем пытаюсь перейти на страницу page1.htm, которая работает отлично! Так что пока все хорошо.

Теперь немного, что я не понимаю. Затем я создал новую папку в папке ManifestTesting под названием «pages» и переместил в нее page1 и page2. Я обновил ссылки в индексе для ссылки на новое местоположение, и если я просматриваю веб-сайт без ссылки на манифест, все работает нормально, как и раньше. Затем я повторно ссылаюсь на файл манифеста в индексе и обновляю манифест, чтобы он выглядел следующим образом:

CACHE MANIFEST

CACHE:
index.htm
pages/page1.htm
pages/page2.htm

Затем я очищаю историю, обновляю, Firefox просит веб-сайт сохранять автономные данные, включать автономный режим и затем пытаться перейти на страницу 1 - это не работает! FireFox сообщает, что работает в автономном режиме и не может просматривать веб-страницы!

Что я делаю не так?

1 Ответ

1 голос
/ 08 ноября 2012

Здесь может быть несколько возможностей:

1) Можете ли вы попробовать также вставить "/pages/page1.htm" вместо "pages / page1.htm"

2)убедитесь, что вся ссылка и то, что вы вводите в браузере, чувствительны к регистру.('pages / page1.htm' не то же самое, что 'pages / Page1.htm')

3) вы упомянули, что очистили историю ... если вы делаете это таким образом для тестирования,вам также необходимо очистить кэш физических файлов, а не только историю.

4) это, вероятно, наиболее вероятная причина: когда вы вносите изменения в файл манифеста и обновляете браузер, это то, чтопроисходит (при условии, что вы подключены к сети)

  • браузер сначала загружает обратно все файлы в кэш
  • , а затем браузер проверяет в Интернете наличие файла манифеста
  • itобнаруживает, что файл манифеста изменился, затем приступает к загрузке новых файлов
  • , однако в это время вы все равно будете просматривать «старые файлы», поскольку браузер загрузил старые файлы перед тем, как перейтионлайн, чтобы загрузить «новые файлы»
  • , если в этот момент, если вы нажмете кнопку «Обновить» снова (во второй раз), вы должны получить «новые файлы» (и вы сможете перейти на страницу 1 и страницу 2).после выходаine

В настоящее время это стандартное поведение.Некоторые люди помещают некоторые обработчики событий, чтобы предложить пользователю сделать другое обновление (после 1-го обновления)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...