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件)
- 今日のトップ記事
- 昨日
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
Ajax
Flash
RIA
Chrome
開発環境
データベース
Microsoft
インストール
Windows Vista
OS
Java
小技
Webサービス
JavaScript
Webデザイン
Windows XP
マイクロソフト
プログラミング言語
Firefox
iPod touch
Firefox 3
Google
UI
WebKit
Windows
CSS
セキュリティ
Mac OS X
オープンソース
モバイル
リファレンス
Mozilla
ブラウザ
Opera
Internet Explorer
iPhone 3G
iPhone
ソフトウェア開発
脆弱性
Windows 7
仮想化
Safari
HTML
Apple
Tips
アプリケーション
Linux
Database
クラウド
Off Topic
話題のタグを見る »
「Google Chrome」の拡張機能、開発者からのアップロード受付を開始
IMAPでGmailを受信、最も手っ取り早いのは?Windows 7、Ubuntu 9.10、Snow Leopardのメーラー比較
Snow LeopardではNTFSをサポート--その源流を訪ねる(2)
MS運営のオープンソース開発プロジェクト支援サイト「CodePlex」を探検する(2)
Snow LeopardではNTFSをサポート--その源流を訪ねる(1)
フォトレポート:「Windows Server 2008 R2」--あまり知られていない有用な機能10選
企業ITシステムの企画、構築、運用のイロハ
高まるiSCSIストレージへの注目度
―エン・ジャパン厳選求人☆毎週更新―
【最終警告】パンデミック対策特集
電力に"ふた"をする独自の省エネ機能とは!?
100万円で実現!中小企業の情報漏えい対策
大丈夫?あなたの会社のセキュリティ対策