A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/ja/docs/Web/API/Page_Visibility_API below:

ページ可視性 API - Web API

ページ可視性 API

Baseline Widely available

ページ可視性 API (Page Visibility API) では、現在ページが見えているかどうかを調べる機能とともに、文書が表示されたり非表示になったりした時を監視することができるイベントを提供します。

これは特に、文書が表示されていない時に不必要なタスクの実行を抑止することで、リソースを節約したり実行効率を上げたりするために特に有用です。

概念と使用法

ユーザーがウィンドウを最小化したり他のタブに切り替えたりした時、 API は visibilitychange イベントを送信してリスナーにページの状態が変化したことを知らせます。イベントを検出していくつかの操作を実行したり、様々な動作をしたりすることができます。例えば、ウェブアプリで動画を再生している場合、ユーザーがタブをバックグラウンドにした場合に動画を一時停止させ、ユーザーがこのタブに戻ったときに再生を再開させたりすることができます。ユーザーは動画の位置に迷うことがなく、動画の音声が新しく前景になったタブの音声を邪魔せず、ユーザーがその間に動画を見落とすことがなくなります。

<iframe> の可視状態は、親文書と同じになります。 CSS プロパティにより (display: none; のように) <iframe> を隠しても可視性イベントは発生せず、またフレームに含まれる文書の状態も変わりません。

使用例

ページ可視性 API の使用例をいくつか考えてみましょう。

以前、開発者はこれを検出するために不完全な代替手段を使用していました。例えばウィンドウで blur および focus イベントを監視することで、ページがアクティブではないときを知る助けになりますが、ページがユーザーから隠された状態であることは知らせてくれません。ページ可視性 API はこれを解決します。

メモ: onblur および onfocus はユーザーがウィンドウを切り替えたことを教えてくれますが、非表示にしたという意味になるとは限りません。ページが非表示になるのは、ユーザーがタブを切り替えたり、タブを含むブラウザーウィンドウを最小化したりした時だけです。

バックグラウンドページのパフォーマンスを向上させるためのポリシー

ページ可視性 API とは別に、ユーザーエージェントは通常、バックグラウンドまたは隠されたタブのパフォーマンスへの影響を緩和するために、いくつかのポリシーを持っています。これには次のようなものがあります。

一部のプロセスは、この調整動作から除外されます。このような場合、ページ可視性 API を使用して、タブが非表示になっている間のパフォーマンスへの影響を軽減することができます。

他のインターフェイスの拡張 インスタンスプロパティ

ページ可視性 API は、以下のプロパティを Document インターフェイスに追加します。

Document.hidden 非推奨; 読取専用

ページがユーザーから隠された状態であると思われる場合に true を、そうでない場合に false を返します。

Document.visibilityState 読取専用

文字列で、文書の現在の可視状態を示します。取りうる値は以下の通りです。

visible

このページのコンテンツは、少なくとも部分的に可視状態です。実際は、最小化されていないウィンドウのフォアグラウンドのタブにページがあることを意味します。

hidden

このページのコンテンツはユーザーから見えていません。実際は、文書がバックグラウンドのタブか最小化されているウィンドウにある、あるいは OS のスクリーンがロックされていることを意味します。

イベント

ページ可視性 API は、以下のイベントを Document インターフェイスに追加します。

visibilitychange

タブの内容が可視状態または非表示になった時に発行されます。

例 ページが非表示になると音声を一時停止

この例では、ユーザーが異なる形に切り替えたときに音声を一時停止し、元に戻したときに再生します。

HTML
<audio
  controls
  src="https://mdn.github.io/webaudio-examples/audio-basics/outfoxing.mp3"></audio>
JavaScript
const audio = document.querySelector("audio");

// Handle page visibility change:
// - If the page is hidden, pause the video
// - If the page is shown, play the video
document.addEventListener("visibilitychange", () => {
  if (document.hidden) {
    audio.pause();
  } else {
    audio.play();
  }
});
結果

音声を再生してから、異なる形のタブに切り替えて、もう一度再生してみてください。

仕様書 ブラウザーの互換性

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4