次のシナリオを想像してみましょう。私たちは田舎に向かう電車に乗って、モバイル デバイスで素晴らしい記事を読んでいます。同時に、[もっと見る] リンクをクリックすると、電車が突然トンネルに入り、モバイル デバイスがネットワークを失い、Web ページに次のような内容が表示されます。
これはかなりイライラする経験!幸いなことに、Web 開発者は新しい機能を使用してこの種のユーザー エクスペリエンスを向上させることができます。最近 Service Worker を使って遊んでいますが、Service Worker が Web にもたらす無限の可能性にいつも驚かされます。 Service Worker の優れた機能の 1 つは、ネットワーク リクエストのステータスを検出し、それに応じて応答できることです。
この記事では、この機能を使用してユーザーの現在のネットワーク接続ステータスを確認し、接続がない場合は非常にシンプルなオフライン ページに戻ることを計画しています。これは非常に基本的な例ですが、この機能を立ち上げて実行するのがいかに簡単であるかがわかるはずです。 Service Worker についてまだ学習していない場合は、この Github リポジトリをチェックして詳細を学ぶことをお勧めします。
ケースを開始する前に、そのワークフローを簡単に見てみましょう:
- ユーザーが初めてページにアクセスすると、Service Worker がインストールされ、オフライン HTML ページがブラウザのキャッシュに追加されます
- その後、ユーザーが別の Web ページ (同じ Web サイトの下) に移動しようとしているが、この時点で接続が切断されている場合、キャッシュされたオフライン HTML ページが返されます
- ただし、ユーザーが別の Web ページに移動するつもりの場合、ネットワークこの時点では接続されているため、通常どおりページを閲覧できます
始めましょう
次の HTML ページがあるとします。これは非常に基本的なことですが、一般的なアイデアが得られます。
<!DOCTYPE html>
次に、オブジェクトのみを作成したページに Service Worker を登録しましょう。作成した HTML に次のコードを追加します。
すごいです
次に、Service Worker ファイルを作成し、「service-worker.js」という名前を付ける必要があります。この Service Worker を使用してすべてのネットワーク リクエストをインターセプトし、ネットワーク接続をチェックし、チェック結果に基づいて最適なコンテンツをユーザーに返すことを計画しています。
<script>// Register the service worker// 注册 service workerif ('serviceWorker' in navigator) { navigator.serviceWorker.register('/service-worker.js').then(function(registration) { // Registration was successful // 注册成功 console.log('ServiceWorker registration successful with scope: ', registration.scope);}).catch(function(err) { // registration failed :( // 注册失败 :( console.log('ServiceWorker registration failed: ', err); });}</script>
上記のコードでは、Service Worker のインストール時にオフライン ページをキャッシュに追加しました。コードを小さな部分に分割すると、コードの最初の数行で、オフライン ページのキャッシュされたバージョンと URL を指定していることがわかります。キャッシュに異なるバージョンがある場合は、バージョン番号を更新するだけでキャッシュをクリアできます。 12 行目あたりで、オフライン ページとそのリソース (画像など) にリクエストを作成します。成功した応答を取得した後、オフライン ページと関連リソースをキャッシュに追加します。
これで、オフライン ページがキャッシュされ、必要なときに取得できるようになります。同じ Service Worker で、ネットワークがない場合に返されるオフライン ページに対応するロジック コードを追加する必要があります。
'use strict';var cacheVersion = 1;var currentCache = { offline: 'offline-cache' + cacheVersion};const offlineUrl = 'offline-page.html';this.addEventListener('install', event => { event.waitUntil( caches.open(currentCache.offline).then(function(cache) { return cache.addAll([ './img/offline.svg', offlineUrl ]); }) );});
この機能をテストするには、Chrome の組み込み開発者ツールを使用できます。まず、ページに移動し、Service Worker がインストールされたら、[ネットワーク] タブを開いて、スロットリングをオフラインに変更します。 (翻訳者注: スロットルをオフラインに設定しても効果がない場合は、ネットワークをオフにするか、Chrome が 360 Security Guard を通じてネットワークにアクセスすることを禁止できます)
ページを更新すると、対応するものが表示されるはずです。オフラインページです!
コードを書かずにこの機能を単純にテストしたい場合は、私が作成したデモにアクセスしてください。さらに、上記のコードはすべて Github リポジトリにあります。
このケースで使用されているページはシンプルだと思いますが、オフライン ページはあなた次第です。このケースの内容をさらに詳しく知りたい場合は、このケースのようなオフライン ページのキャッシュ無効化を追加できます。
多読
さらに、優れたオフライン機能のケースがいくつかあります。例: Guardian は、クロスワード パズルを備えたオフライン Web ページを作成しました。これにより、ネットワークの再接続を待っている間 (つまり、オフラインになっているとき) にも少し楽しむことができます。また、Google Chrome Github リポジトリを参照することをお勧めします。これには、さまざまな Service Worker の例が多数含まれています。使用例の一部もここにあります。
ただし、上記のコードをスキップして、関連する操作をライブラリを通じて単純に処理したい場合は、UpUp を検討することをお勧めします。これは、オフライン機能を簡単に使用できる軽量のスクリプトです。
より良い記事を翻訳できるように翻訳者をサポートするためのヒント、ありがとう!
翻訳者にチップ
より良い記事を翻訳できるように翻訳者をサポートするためのチップ、ありがとう!
支払い方法を選択してください
著者について: Liu Jianchao-J.c
フロントエンド、オンザロード... http://jchehe.github.io 個人ホームページ · 私の記事 · 17 ·

ブール属性は、値なしでアクティブ化されるHTMLの特別な属性です。 1.ブール属性は、無効化された入力ボックスを無効にするなど、存在するかどうかによって、要素の動作を制御します。 2.彼らの実用的な原則は、ブラウザが異なっているときに属性の存在に応じて要素の動作を変更することです。 3.基本的な使用法は、属性を直接追加することであり、高度な使用法はJavaScriptを介して動的に制御できます。 4.一般的な間違いは、値を設定する必要があると誤って考えており、正しい執筆方法は簡潔にする必要があります。 5.ベストプラクティスは、コードを簡潔に保ち、ブールのプロパティを合理的に使用して、Webページのパフォーマンスとユーザーエクスペリエンスを最適化することです。

HTMLコードは、オンラインバリデーター、統合ツール、自動化されたプロセスを使用するとクリーンになります。 1)w3cmarkupvalidationserviceを使用して、HTMLコードをオンラインで確認します。 2)リアルタイム検証のためにVisualStudiocodeにhtmlhint拡張機能をインストールして構成します。 3)HTMLTIDYを使用して、建設プロセスでHTMLファイルを自動的に検証およびクリーニングします。

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

ホットトピック









