2014-09-26 65 views
2

我必須構建一個在遠程/現場/脫機環境中完全可用的Web應用程序它看起來像具有相當先進的緩存機制的HTML5 supports an "offline mode"向用戶提供對離線HTML5 Web應用程序的訪問

幾個問題:

  1. 除了緩存JS/CSS /圖像資源,我還需要一種方法來存根頁「下載」後的/模擬/重設路線異步/ AJAX調用。例如,在「在線模式」下,如果用戶點擊一個按鈕,通常會向服務器發送HTTP POST。但是在「脫機模式」下,我需要它以某種方式在本地存儲某個HTTP POST的存根/模擬版本。然後,當用戶恢復「在線模式」時,應用程序將足夠智能以查詢緩存並觸發請求。 這可能嗎?如果是這樣,這個機制叫什麼,它在哪裏記錄?
  2. 外行最終用戶預計如何找到離線HTML5應用程序?!?他們會知道以「在線模式」進入http://www.myapp.example.com,但是「離線」時,他們通常需要轉到某個以file:///some/path/on/their/system/to/the/cached/offline/app開頭的瀏覽器URL,對吧? HTML5有什麼可以讓這個更「用戶友好」嗎?例如,在離線模式下,用戶仍然可以訪問正常的在線URL(myapp.example.com),但瀏覽器會自動檢測到網絡中斷,並將緩存中的任何內容回送到服務器。或類似的東西?
+1

你應該通過這篇文章閱讀:http://diveintohtml5.info/offline.html – 2014-09-26 15:23:15

+0

感謝@LcLk(+1) - 我應該提到這一點,但我已經讀到了那篇文章。不幸的是,這些文章沒有解決的兩點: -/ – smeeb 2014-09-26 15:25:00

+0

啊,我似乎記得它確實,讓我再次檢查一下,也許我的意思是從我的巨大的書籤文件夾中獲取不同的鏈接... – 2014-09-26 15:37:39

回答

1

好了,所以我不得不INFACT讀答案的diveintohtml5文章這些問題不能不在它的鏈接引用:

  1. linked article描述瞭如何在JS檢查你是否是當前在線或從緩存頁面開始工作。我們充分利用這一點,你應該有你的API代碼的兩個版本(您使用來獲得服務器資源的):

    1. 一個聯機使用,與HTTP GET/POST,然後將數據存儲在本地使用indexdb
    2. 一個用於離線使用,它直接轉到您的indexdb或回退到不可用的資源。您應該也可以檢查用戶是否在這裏重新聯機並切換到替代方法。
  2. 一旦用戶訪問了一個頁面,一個緩存清單,你的瀏覽器知道如何處理它,下次您嘗試訪問它,你就下線然後在瀏覽器做這一切爲您:https://html.spec.whatwg.org/multipage/browsers.html#offlinehttp://googlecode.blogspot.ie/2009/05/gmail-for-mobile-html5-series-part-3.html

+0

再次感謝@LLLK(+1) - 但對於#2,離線使用我的應用程序時,用戶在其瀏覽器地址欄中會看到什麼URL? – smeeb 2014-09-26 16:17:57

+0

我到目前爲止只讀過,沒有測試任何這個,但我假設與往常一樣的網址,我有一個運行atm的節點服務器,我會模擬一個例子並回報 – 2014-09-26 19:57:01

相關問題