我正在爲需要支持離線功能的現場操作員創建ASP.NET MVC 4移動應用程序(平板電腦)的PoC。這是一個相對簡單的數據錄入應用程序,帶有一個WebAPI後端,將使用SQL數據庫作爲持久存儲。使用HTML5離線功能設計移動ASP.NET MVC 4數據錄入應用程序的正確方法
這是我第一次實現離線支持,所以我有點不確定哪個是設計這個的最好方法。現在我可以想到兩種方式,並不確定哪一種更好或更正確。
我想要的是,只要有互聯網連接,信息從服務器中檢索。如果連接丟失,我希望將最新的信息緩存/提供並顯示給用戶。
基於我所做的一些測試,HTML5脫機支持似乎可以工作的方式是,只要加載了任何視圖,瀏覽器就會檢查清單並緩存每個頁面的版本那一刻。如果我的理解是正確的,那意味着如果用戶在瀏覽器下載清單文件後添加新條目,那麼這些記錄將不會顯示在離線版本中。
我可以考慮解決的一種方法是每次服務時都要更改清單版本(因爲我是動態生成的),但是我覺得這樣會打敗目的..或者至少是效率非常低帶寬明智的。
我能想到的唯一的另一種選擇是不使用常規MVC(不傳遞記錄/數據庫信息作爲模型屬性或ViewBag屬性)來顯示記錄,而只是檢索所需頁面信息的json並保存在本地存儲中。然後,根據localstorage中的信息使用模板或JavaScript生成視圖。這可以在線或離線工作,不是嗎?
我不確定我是否接近這個錯誤的方式。建立一個SPA或簡單的HTML/JavaScript應用程序會更合適嗎?也許使用JS框架?在這一點上,我有一些能力來確定我們將使用什麼技術或框架。
任何指導非常感謝。
正如更多的信息,這裏有幾件事情我在研究如何構建這個應用時學到了知識。我可能錯了。如果是這樣,請糾正我,只是想分享,以防有人剛剛開始這個話題,就像我: 1. HTML5中通過緩存清單離線功能背後的自然觀點/模式/範例是UI(html )完全獨立於數據。也就是說,它不適合服務器端生成的HTML。 「傳統」應用程序是他們稱之爲http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#offline – GR7 2013-04-30 14:19:55
2.在理論上,您仍然可以將脫機功能與那些服務器端的html生成應用程序,將URL添加到CACHE和NETWORK部分,並將SETTINGS部分添加到清單,並指定prefer-online設置。然而,這是完全不可靠的,因爲一些瀏覽器還不支持它,所以設置被忽略,並且你被一個陳舊的數據版本卡住了。 – GR7 2013-04-30 14:22:26
感謝您分享這些信息!在這件事上我從你那裏學到很多東西。你能用ASP.NET MVC獲得所有這些工作嗎? – 2014-05-12 02:01:30