2012-01-04 6 views
0

私が取り組んでいるウェブアプリケーションに問題があり、少し曖昧でおそらくそれほど役に立たない質問hereを投稿しました。私は本当に基本的なサイトを作成し、それをメインアプリケーションのように構築し、どこが壊れているのかを確認することに決めました。私はこれをして、オフラインキャッシュですぐに立ち往生した。HTML5オフラインの奇妙な動作

これは、IIS 7.5でローカルにホストされる基本的な3ページの静的なWebサイトです。私はフォルダーc:\ inetpub \ wwwroot \ ManifestTestingを作成し、それをIISにWebアプリケーションとして追加し、.appcache拡張用の新しいMIMEタイプのtext/cache-manifestを追加しました。これにはオフラインモード機能があるため、FireFox 9.0もテスト用に使用しています。

私は3つのHTMLページを作成し、ManifestTestingフォルダにそれらを追加しました:

  • のindex.htm - このページは
  • に、Page1.htmをPage1.htmをしてpage2.htmする2つのリンクが含まれていますが - ちょうどAが含まれページ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をそのフォルダに移動しました。新しい場所を参照するためにインデックス内のリンクを更新しました。マニフェスト参照なしでWebサイトを参照すると、以前と同じようにすべて正常に動作します。私は、インデックス内のマニフェストファイルを参照し直すと、のようになりマニフェストを更新します。

CACHE MANIFEST 

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

Iその後、明確な歴史、リフレッシュ、Firefoxはオフラインモードを有効にするには、Webサイトがオフラインのデータを格納できるように要求し、その後の試みpage1に移動する - それは動作しません! FireFoxは、それがオフラインモードであると私に伝え、ウェブを閲覧することはできません!

私は間違っていますか?

答えて

1

ここにいくつかの可能性があるかもしれません:あなたはまた、そのことを確認してください代わりに "ページ/ Page1.htmを"

2)の "/pages/page1.htm" で入れて試すことができます

1)すべてのリンクとブラウザに入力する内容は大文字と小文字を区別します。 ( 'pages/page1.htm'は 'pages/Page1.htm'と同じではありません)

3)あなたは履歴をクリアしたと言いました...テストのためにこの方法を行っている場合は、履歴だけでなく、物理ファイルキャッシュもクリアすることができます。

4)、これはおそらく、最も可能性の高い原因である:あなたがマニフェストファイルに変更を加えたとき、あなたはブラウザをリフレッシュし、これはあなたがオンラインしていると仮定すると(何が起こるかである)

  • ブラウザが最初にロードバックマニフェストファイルのためのオンラインキャッシュ内のすべてのファイル
  • 、ブラウザチェック
  • はそれがマニフェストファイルが変更されたことを検出し、それはその後、この時点では、しかし、あなたを
  • 新しいファイルをダウンロードするに進みますあなたの '古いファイル'をまだ見ているbeca新しいファイルをダウンロードするためにオンラインになる前に古いファイルをロードしたブラウザを使用してください。
  • この時点で、リフレッシュ をもう一度(2回目)押すと、新しいファイルが得られますオフラインになった後、ページ1とページ2に行くことができる

これは現在のところ標準的な動作です。一部の人は、(最初​​のリフレッシュ後に)別のリフレッシュを実行するようにユーザーに促すイベントハンドラをいくつか配置します。