「Firefox 3 Online and Offline Events」修訂間的差異
出自 MozTW Wiki
(→API) |
(→online and offline events) |
||
行 14: | 行 14: | ||
===== navigator.onLine ===== | ===== navigator.onLine ===== | ||
− | + | ==== online and offline events ==== | |
=== 例子 === | === 例子 === |
於 2008年1月8日 (二) 13:53 的修訂
Firefox 3 依據 WHATWG Web Applications 1.0 Specification 實做了 Offline/Online Events。
概觀
打造可以離線跑的網路應用程式時,我們往往需要讓程式知道目前的網路狀況。實際上,網路應用程式一般的需求可細分如下:
- 使用者連上網路的時候,網路應用程式必須知道—使用者已經連上網路了,以便與伺服器同步(re-synchronize)。
- 使用者離線的時候,網路應用程式必須知道—使用者目前處於離線狀態,以便將使用者對伺服器發出的 requests 排入隊列(queue)。
有了 Online/offline events,要滿足這些需求變得很簡單。
此外,你的網路應用程式有時可能必須將某些 HTML 文件列入快取中,以便使用者離線時可以存取,如有這個需求,你可以在 HTML 文件的 <HEAD> 加入 <link> 元素:
<link rel="offline-resource" href="myresource">
Firefox 3 看到這些語法時,就會將這些資源列入一個特殊的離線資源快取(offline resource cache)中,讓使用者在離線時,依舊可以被存取這些資源。
API
online and offline events
例子
這裡有個簡單的例子。
<!doctype html> <html> <head> <script> function updateOnlineStatus(msg) { var status = document.getElementById("status"); var condition = navigator.onLine ? "ONLINE" : "OFFLINE"; status.setAttribute("class", condition); var state = document.getElementById("state"); state.innerHTML = condition; var log = document.getElementById("log"); log.appendChild(document.createTextNode("Event: " + msg + "; status=" + condition + "\n")); } function loaded() { updateOnlineStatus("load"); document.body.addEventListener("offline", function () { updateOnlineStatus("offline") }, false); document.body.addEventListener("online", function () { updateOnlineStatus("online") }, false); } </script> <style>...</style> </head> <body onload="loaded()"> <div id="status"><p id="state"></p></div> <div id="log"></div> </body> </html>