Firefox 3のオンライン状態の変化を伝えるイベント
杉山貴章(オングス)
2008/12/02 08:00
Firefox 3でブラウザのオンライン/オフライン状態を知るには、navigatoe.onLineプロパティとonline/offlineイベントを利用すればいい。今回は実際にこれを使う簡単なサンプルコードを紹介する。
online/offlineイベントをキャッチする
ブラウザの状態がオンラインからオフライン、またはその逆に変化した場合、offlineまたはonlineイベントが通知される。このイベントは通常通りリスナでキャッチすればよい。現在の状態はnavigator.onLineプロパティの値から把握できる。
リスト1は、Mozilla CorporationのJohn Resig氏によるサンプルコードを元に作成した例である。最初にinit()でdocument.bodyに対してonlineイベントとofflineイベントのためのリスナを登録している。リスナではupdateOnlineStatus()を呼び出し、現在の状態と、受け取ったイベントの種類をページに表示する。
リスト1 オンライン状態の変化に応じて表示を変えるサンプルコード
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script>
function updateOnlineStatus(msg) {
// ステータスを表示
var status = document.getElementById("status");
var condition = navigator.onLine ? "オンライン" : "オフライン";
var state = document.getElementById("state");
state.innerHTML = condition;
// ログを表示
var log = document.getElementById("log");
log.appendChild(document.createTextNode
("[" + msg + "イベント] ステータス:" + condition));
log.appendChild(document.createElement("br"));
}
function init() {
// ステータスを更新
updateOnlineStatus("load");
// offlineイベントを監視
document.body.addEventListener("offline", function () {
updateOnlineStatus("offline")
}, false);
// onlineイベントを監視
document.body.addEventListener("online", function () {
updateOnlineStatus("online")
}, false);
}
</script>
</head>
<body onload="init()">
<div id="status" align="center"
style="color:blue; font-weight:bold;
border:3px solid blue; width:300px; height:100px">
<p id="state"></p>
</div>
<div id="log" style="border:3px solid red;
width:300px; min-height:80px"></div>
</body>
</html>
初期状態ではブラウザはオンラインになっているはずなので、図1のように表示される。
図1 初期状態ではオンラインになっている
ここから、[ファイル]メニューでブラウザをオフライン状態にしてみる。するとofflineイベントが発生してupdateOnlineStatus()が呼び出され、表示は図2のように変わる。さらに、再びオンライン状態に戻すと図3のようになる。
図2 オフライン状態にすると、offlineイベントが発生して表示が変わる
図3 再びオンライン状態に戻した
ウェブアプリケーションにおいてこのようにオンライン状態の変更を正確に把握できれば、オフラインの間はキャッシュやローカルストレージを利用し、オンラインになったらサーバと同期を取るなどといった処理が可能になる。オフライン対応のウェブアプリケーションを作成するためには必須の機能だ。
- 特集: 開発者のFirefox 3 (69件)
- ホワイトペーパー
- 企画特集
インターネット上の悪意を未然に防ぐには?
◆エン・ジャパン厳選求人☆毎週更新◆
SOA、BPM、SaaS −今、企業に必要なこと
今注目の「サジェスト検索」−デモ掲載中
中小企業のセキュリティリスクとは?
パンデミック対策特集
御社のログ活用しませんか!?
仮想環境を実現するソリューション特集
【徹底対談】運用管理ツールの賢い使い方
ESBでIT投資の無駄を劇的に解消する
ストレージメディア特設サイト開設
集積度も性能も、業界最高水準のブレードPC
そのストレージで仮想化に対応できますか?
セキュリティ&ユーザ事例【SIer Club】
ロリポップ!がリニューアル
- ■ストレージ容量50%削減保証■
- サーバー監視・運用のコストを削減するには
- サービス・ドリヴン・データセンター
- エンタープライズにおけるSUSEの強み
- 話題のタグ
Ajax
Google
モバイル
ソフトウェア開発
Off Topic
PHP
iPod touch
UI
Chrome
Webサービス
Mozilla
WebKit
HTML
ブラウザ
Windows Vista
Webデザイン
Opera
小技
Flash
リファレンス
インストール
Tips
アプリケーション
Adobe
Windows
iPhone
JavaScript
Apple
Internet Explorer
開発環境
Firefox 3
iPhone 3G
Firefox
CSS
OS
Windows 7
Database
セキュリティ
プログラミング言語
Java
SOA
Safari
RIA
仮想化
脆弱性
データベース
Linux
Mac OS X
オープンソース
Microsoft
話題のタグを見る »
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――