6

我的任務是讓我公司的Web應用程序脫機。在我進入實際發展階段之前,我想確保我目前的戰略不會變成一場大蕭條。使ASP.Net(C#)Web應用程序脫機可用

我首先想到了使用html5應用緩存,但做了一些測試後,我發現它似乎不緩存服務器端操作,但實際呈現的html(請糾正我,如果我錯了)。這是行不通的,因爲呈現的html取決於當前登錄的人。從我的測試中,它總是呈現html,就好像最後一個登錄人(在線)登錄一樣。

我目前的策略是這樣的: 我只緩存登錄頁面和離線(.html)頁面以對應每個需要脫機使用的aspx頁面。每一次成功的登錄(在線)都會導致創建或更新Web SQL數據庫或IndexDB(取決於瀏覽器)以及該人員離線操作所需的所有數據,包括將用於登錄憑證的表。通過這種方式,登錄離線的唯一要求是至少登錄一次登錄憑證。

我擔心的是我太過於複雜。爲了做到這一點,我需要爲每個當前頁面(很多頁面)創建一個html頁面,並且我將不得不用JavaScript重寫當前正在服務器上執行的所有操作,包括驗證,數據庫調用,填充控件如下拉列表和數據網格等。另外,我在將來更改的所有內容都需要後續的離線更改。

對於我正在試圖做的事情,我是否已經有了一個既定的最佳實踐,那就是我忽略了或者我冒險進入新領域?

+0

我不是專家,在這裏,但它聽起來像你需要有不同的用戶登錄到您的網站,都來自同一瀏覽器會話和所有斷開?這似乎是一個困難的情況,需要您在客戶端緩存用戶名和密碼。可能是一種危險的做法。 – andleer

+0

謝謝你的回覆。如果我正確理解你,我認爲你誤解了我的策略。該計劃允許任何之前以在線模式登錄的人員以後以離線模式運行。我正在開發的應用程序的正常情況是,它將由移動設備上的工頭(iphone,droid,tablet等)訪問,因此通常同一個人將使用相同的設備。你是否說通過Web SQL或IndexDB存儲密碼是危險的做法?如果是這樣,爲什麼? –

+1

當然,在客戶端存儲用戶名和密碼可能不是好的做法,詹姆斯似乎似乎是真正的問題有待解決。理想情況下,當最終用戶想要訪問離線系統時,他還需要在線進行身份驗證,並使他的工作脫機並在線同步。我會考慮使用Silverlight之類的東西,但在訪問Silverlight的客戶端方面似乎存在問題,因此隔離式存儲是唯一的選擇。 –

回答

3

請參考這些鏈接,這些鏈接爲您提供了一些有關如何實現的信息。我不確定這些是否是最佳做法,但這些都是很好的起點。

http://www.c-sharpcorner.com/UploadFile/aravindbenator/offline-mvc3-application/ http://www.developerfusion.com/article/84438/isolated-storage/

+0

謝謝你Siva這個答案。我期待着進一步研究獨立存儲,因爲它似乎是一個很好的工具。您在c-sharpcorner上指出的模型似乎是實施我在原始問題中概述的策略的好模型。是否認爲緩存離線html文件以對應每個在線aspx文件是最佳解決方案? –