チャット: HTML 5 ページの可視性 API_html/css_WEB-ITnose
grants翻訳出典:http://www.ido321.com/1126.html
オリジナルテキスト:html5ページの可視性api
translation:html 5ページの可視性api
translator:dwqs
初期の頃、ブラウザはタブを提供していませんでしたが、現在では基本的にすべてのブラウザがこの機能を提供しています。プログラマーとして、私は通常 10 ~ 15 個のタブを同時に開き、場合によっては 25 ~ 30 個のタブを開きます。
Page Visibility API を導入する理由は何ですか?
以前は、どのタブがアクティブでどのタブがアクティブでないかを判断することは不可能でしたが、HTML 5 Visibility API の助けを借りて、ユーザーが Web サイトのページを閲覧しているかどうかを検出することが可能になりました。
この記事では、HTML 5 Visibility API の使用方法を理解し、小さなデモを使用してページのステータスを確認します。このデモでは、ページの表示ステータスに基づいてドキュメントのタイトルがポップアップ表示されます。
ページの可視性を確認します
Visibility API を使用するには、まず 2 つの新しいドキュメント プロパティを理解する必要があります。1 つは document.visibilityState で、もう 1 つは document.hidden です。それらの機能は異なります。
document.visibilityState には 4 つの異なる値があります:
1. hidden: ページはどの画面にも表示されません
2. prerender: ページは読み込まれており、ユーザーには表示されません3. ページは表示されます
4 、 unloaded: ページはアンロードされます (つまり、ユーザーは現在のページから離れます)
document.hidden はブール値で、false はページが表示されることを意味し、true はページが表示されないことを意味します。
利用可能な属性がわかったので、次はイベントをリッスンして、ページの可視性ステータスを知ることができます。これは、visibilitychange イベントを使用して行われます。例は次のとおりです。
document.addEventListener('visibilitychange', function(event) { if (!document.hidden) { // The page is visible. } else { // The page is hidden. }});
このコードは、現在のページのステータスを検出するための Visibilitychange イベントの単純なアプリケーションです。ただし、知っておく必要があるのは、一部のブラウザーではプライベートにプレフィックスが付けられるため、すべてのプロパティとメソッドにプレフィックスを付ける必要があるということです。以下はクロスブラウザの例です:
// Get Browser-Specifc Prefixfunction getBrowserPrefix() { // Check for the unprefixed property. if ('hidden' in document) { return null; } // All the possible prefixes. var browserPrefixes = ['moz', 'ms', 'o', 'webkit']; for (var i = 0; i < browserPrefixes.length; i++) { var prefix = browserPrefixes[i] + 'Hidden'; if (prefix in document) { return browserPrefixes[i]; } } // The API is not supported in browser. return null;} // Get Browser Specific Hidden Propertyfunction hiddenProperty(prefix) { if (prefix) { return prefix + 'Hidden'; } else { return 'hidden'; }} // Get Browser Specific Visibility Statefunction visibilityState(prefix) { if (prefix) { return prefix + 'VisibilityState'; } else { return 'visibilityState'; }} // Get Browser Specific Eventfunction visibilityEvent(prefix) { if (prefix) { return prefix + 'visibilitychange'; } else { return 'visibilitychange'; }}
これで、ブラウザのすべての属性とメソッドにプレフィックスが付いているので、安心して使用できます。前のコードを調整します:
// Get Browser Prefixvar prefix = getBrowserPrefix();var hidden = hiddenProperty(prefix);var visibilityState = visibilityState(prefix);var visibilityEvent = visibilityEvent(prefix); document.addEventListener(visibilityEvent, function(event) { if (!document[hidden]) { // The page is visible. } else { // The page is hidden. }});
Visibility API はどこで使用する必要がありますか? ️ナビゲーション ページが RSS ソースから詳細をクエリしているか、定期的に API を呼び出しています。ページがユーザーに表示されない場合は、次の状況で API の使用を検討できます:
RSS フィードまたは API への呼び出しを制限できます。
2. 一般的な手のスタイルの効果では、ページが非表示のときにその動きを制限できます。
3. 同様に、ページが非表示の場合にのみ、HTML 通知 (翻訳: http://www.ido321.com/1130.html) がユーザーに表示されます。 コードがどのように Visibility API を呼び出すかはすでにわかっています。デモを見てみましょう。
デモデモ1: Visibility APIを使用してページタイトルを変更する: デモを見る
デモ2: ページが表示されない場合に、サーバーから送信されるデータのクエリを制限する方法。
Demo2 では、サーバーからの更新情報のクエリをどのように制限しますか?ユーザーはページを閲覧しているだけでなく、ページに
JQuery が導入されていると仮定します。わかりやすくするためにカウントのみを示していますが、代わりに実際のサーバー データを使用することもできます。
HTML:
<!-- This element will show updated count --><h1 id="valueContainer">0</h1>
JavaScript:
<script type="text/javascript"> // Get Browser Prefix var prefix = getBrowserPrefix(); var hidden = hiddenProperty(prefix); var visibilityState = visibilityState(prefix); var visibilityEvent = visibilityEvent(prefix); var timer = null; function increaseVal() { var newVal = parseInt($('#valueContainer').text()) + parseInt(1); $('#valueContainer').text(newVal); document.title = newVal + ': Running'; timer = setTimeout(function() { increaseVal(); }, 1); } // Visibility Change document.addEventListener(visibilityEvent, function(event) { if (document[hidden]) { clearTimeout(timer); var val = parseInt($('#valueContainer').text()); document.title = val + ': Pause'; } else { increaseVal(); } }); increaseVal(); </script>
デモを見る
ブラウザサポート
ブラウザが Visibility API をサポートしているかどうかを知りたい場合は、「使用できますか?」にアクセスすることをお勧めします。チェックする 。ただし、ブラウザがサポートしているかどうかを検出するには、プログラミングを使用することをお勧めします。「さまざまな HTML5 機能のサポートの検出」(翻訳:http://www.ido321.com/1116.html) を参照してください。この API は、主流の最新ブラウザーですでに十分にサポートされています
概要
先ほども言いましたが、2 つのプロパティと 1 つのイベントを含む、使用できる優れた API があります。既存のアプリケーションに簡単に統合でき、優れたユーザー エクスペリエンスを実現できます。最後に言いたいのは、ページがユーザーに表示されない場合でも、ページの動作を制御できるということです。
次の記事: 雑話: HTML 5 メッセージ通知メカニズム

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











公式アカウントのWebページはキャッシュを更新します。これはシンプルでシンプルで、ポットを飲むのに十分な複雑です。あなたは公式のアカウントの記事を更新するために一生懸命働きましたが、ユーザーはまだ古いバージョンを開くことができますか?この記事では、この背後にあるtwist余曲折と、この問題を優雅に解決する方法を見てみましょう。それを読んだ後、さまざまなキャッシュの問題に簡単に対処でき、ユーザーが常に新鮮なコンテンツを体験できるようになります。最初に基本について話しましょう。それを率直に言うと、アクセス速度を向上させるために、ブラウザまたはサーバーはいくつかの静的リソース(写真、CSS、JSなど)やページコンテンツを保存します。次回アクセスするときは、もう一度ダウンロードすることなく、キャッシュから直接検索できます。自然に高速です。しかし、このことは両刃の剣でもあります。新しいバージョンはオンラインです、

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

この記事では、CSSを使用したWebページへの効率的なPNG境界追加を示しています。 CSSはJavaScriptやライブラリと比較して優れたパフォーマンスを提供し、微妙または顕著な効果のために境界幅、スタイル、色を調整する方法を詳述していると主張しています

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex
