ホームページ > 記事 > ウェブフロントエンド > html5 はオフライン アプリケーションをサポートしていますか?
html5 はオフライン アプリケーションをサポートします。オフライン アプリケーションは HTML5 の新機能であり、ローカル キャッシュ メカニズムを使用して、ユーザーがネットワークなしでも Web ページやアプリケーションを使用できるようにします。 Web アプリケーションがオフライン時に正常に動作するには、HTML ファイル、CSS ファイル、JavaScript スクリプト ファイルなど、Web アプリケーションを構成するすべてのリソース ファイルをローカル キャッシュに配置し、サーバーが接続されていないときにもローカル キャッシュに保存する必要があります。ネットワーク ローカル キャッシュ内のリソース ファイルを使用して、アプリケーションを通常どおり実行することもできます。
このチュートリアルの動作環境: Windows 7 システム、HTML5 バージョン、Dell G3 コンピューター。
HTML5 にはオフライン アプリケーションが追加されました。オフライン アプリケーションでは、ローカル キャッシュ メカニズムを使用することで、ネットワークがない場合でも Web ページやアプリケーションを使用できるようになります。クライアントが Web アプリケーションのサーバーとローカル接続していない場合、Web アプリケーションをクライアント上でローカルに使用して、関連する操作を通常どおり実行できます。
Web アプリケーションがオフライン時に正常に動作するには、HTML ファイル、CSS ファイル、JavaScript スクリプト ファイルなど、Web アプリケーションを構成するすべてのリソース ファイルをローカル キャッシュに配置する必要があります。サーバーがネットワークに接続されていない場合でも、ローカル キャッシュ内のリソース ファイルを使用して Web アプリケーションを通常どおり実行できます。
オフライン アプリケーションを使用するには、次の手順が必要です。
オフライン検出 (インターネットに接続されているかどうかを判断します)
特定のリソースにアクセスする
データを保存するためのローカル領域があります (オンラインかどうかに関係なく、読み取りと書き込みには支障ありません)
1. ブラウザのサポートを確認する方法
if(window.applicationCache){ //浏览器支持离线应用 }
2. 説明ファイルについて
description ファイルは、オフライン時に使用するためにキャッシュする必要のないキャッシュとリソースをリストするために使用されます。
以前は説明ファイルの拡張子は .manifest でしたが、現在は .appcache を使用することが推奨されており、説明ファイルは正しい MIME タイプ、つまり「text/cache-manifest」で構成する必要があります。これは Web サーバー上で構成する必要があります (ファイルのエンコードは UTF-8 である必要があります)。サーバーごとに構成方法も異なりますが、ここでは詳しく説明しません。
最初の行は、次の文字列で始まる必要があります
CACHE MANIFEST
残りは、キャッシュするファイルの URL を 1 行に 1 つずつ指定します (相対 URL は、マニフェスト ファイルに対する相対的なものであり、マニフェスト ファイルに対する相対的なものではありません)。ファイル )
#以“#”开头的是注释 common.css common.js
このようにして、このファイルにリストされているすべてのファイルがキャッシュされます
マニフェストでは、特別な領域のヘッダーを使用して、ヘッダー情報。最も上の単純なキャッシュは「CACHE:」領域に属します。
Like this
#该头信息之后的内容需要缓存 CACHE: common.css connom.js
「NETWORK:」で始まる領域にリストされているファイルは常にオンラインで取得され、キャッシュされません
NETWORK: ヘッダー情報のサポートワイルドカード "*" は、明示的にリストされていないリソースがネットワーク経由で読み込まれることを示します。
#该头信息之后的内容不需要缓存,总是从线上获取 NETWORK: a.css #表示以name开头的资源都不要缓存 name/
"FALLBACK:" で始まる領域のコンテンツは、キャッシュされたリソースが取得できない場合のバックアップを提供します。リソース パス
この領域のコンテンツ。各行には 2 つの URL が含まれます (最初の URL はプレフィックスであり、一致するリソースはキャッシュされません。2 番目の URL はキャッシュする必要があるリソースを示します)
FALLBACK: name/ example.html
リストには任意の数のエリアを含めることができ、場所に制限はありません。
3. オフライン アプリケーションを構築する
CSS、JS、HTML を含む単一ページのアプリケーションを構築し、同時にこの単一ページのアプリケーションにオフライン サポートを追加するとします。 -ページアプリケーション。
説明ファイルをページに関連付けるには、html タグのマニフェスト属性を使用して説明ファイルへのパスを指定する必要があります
<html manifest='./offline.appcche'>
オフライン アプリケーション開発の最初のステップは次のとおりです。デバイスがオフラインかどうかを検出するため
HTML5 に navigator.onLine 属性が追加されました
この属性が true の場合はオンラインを意味し、値が false の場合はオフラインを意味します
if(navigator.onLine){ //联网 }else{ //离线 }
** 注: IE6 以降のブラウザおよびその他の標準ブラウザは、この属性をサポートします。 **
ネットワークがオフラインの場合 このイベントは、ネットワークがオンラインになったときにトリガーされます。このイベントは、更新せずにウィンドウ上でトリガーされます。
window.online = function(){ //需要触发的事件 }
オフライン イベント (IE9 ブラウザーのサポート)
ネットワークがオンラインからオフラインに変わったとき このイベントは、オンライン イベントと同様に、ウィンドウ上でトリガーされ、更新する必要がない場合にトリガーされます
window.offline = function(){ //需要触发的事件 }
アプリケーション キャッシュ (アプリケーション キャッシュ) は、ブラウザのキャッシュから分離されたキャッシュ領域です (サイズは特定のブラウザによって異なり、通常は 5M)
アプリケーション キャッシュと Web の違いページ キャッシュ:
アプリケーション キャッシュの利点
一个web应用首次下载并缓存之后,任何加载请求都优先来自于缓存,因此可以实现离线缓存。如果不需要使用离线缓存了,就需要在服务器端删除描述文件,或者删除HTML页面中的manifest属性。
一旦应用被缓存,则缓存始终不变。那么,怎样才能改变缓存
如果服务器上的文件有所修改的话,那么修改描述文件中注释行的日期或者版本号是一个不错的使浏览器重新缓存文件的办法
此外,我们还可以使用HTML5提供的API来操作和更新缓存
applicationCache API是一个操作应用缓存的接口。新的window.applicationCache对象可以触发一系列与缓存状态相关的事件。
这个对象有一个status属性,值为常量,表示缓存状态
这个对象有以下事件,表示其状态的改变
一般来讲,这些事件会随着页面加载按上述顺序依次触发
通过update()方法也可以手工干预,让应用缓存为检查更新而触发上述事件
applicationCache.update();
update()一经调用,应用缓存就会去检查描述文件是否更新,触发checking事件,然后页面就会像刚刚加载一样,继续执行后续操作。如果触发了cached事件,则说明应用缓存已经准备就绪,不会再发生其他操作。
如果触发了updateready事件,则说明新版本的应用缓存已经可用,需要调用swapCache()方法来启用新的应用缓存。
applicationCache.onupdateready = function(){ applicationCache.swapCache(); };
浏览器检查清单文件,以及更新缓存的操作是异步的,因此可能是在载入旧缓存之后进行,因此可能需要载入两次才能显示最新的内容,因此需要提示用户
window.applicationCache.onupdateready = function(){ var con = comfirm('有新内容可用,是否重新加载?'); if(con){ location.reload(); } }
相关推荐:《html视频教程》
以上がhtml5 はオフライン アプリケーションをサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。