我的任務是讓我公司的Web應用程序脫機。在我進入實際發展階段之前,我想確保我目前的戰略不會變成一場大蕭條。使ASP.Net(C#)Web應用程序脫機可用
我首先想到了使用html5應用緩存,但做了一些測試後,我發現它似乎不緩存服務器端操作,但實際呈現的html(請糾正我,如果我錯了)。這是行不通的,因爲呈現的html取決於當前登錄的人。從我的測試中,它總是呈現html,就好像最後一個登錄人(在線)登錄一樣。
我目前的策略是這樣的: 我只緩存登錄頁面和離線(.html)頁面以對應每個需要脫機使用的aspx頁面。每一次成功的登錄(在線)都會導致創建或更新Web SQL數據庫或IndexDB(取決於瀏覽器)以及該人員離線操作所需的所有數據,包括將用於登錄憑證的表。通過這種方式,登錄離線的唯一要求是至少登錄一次登錄憑證。
我擔心的是我太過於複雜。爲了做到這一點,我需要爲每個當前頁面(很多頁面)創建一個html頁面,並且我將不得不用JavaScript重寫當前正在服務器上執行的所有操作,包括驗證,數據庫調用,填充控件如下拉列表和數據網格等。另外,我在將來更改的所有內容都需要後續的離線更改。
對於我正在試圖做的事情,我是否已經有了一個既定的最佳實踐,那就是我忽略了或者我冒險進入新領域?
我不是專家,在這裏,但它聽起來像你需要有不同的用戶登錄到您的網站,都來自同一瀏覽器會話和所有斷開?這似乎是一個困難的情況,需要您在客戶端緩存用戶名和密碼。可能是一種危險的做法。 – andleer
謝謝你的回覆。如果我正確理解你,我認爲你誤解了我的策略。該計劃允許任何之前以在線模式登錄的人員以後以離線模式運行。我正在開發的應用程序的正常情況是,它將由移動設備上的工頭(iphone,droid,tablet等)訪問,因此通常同一個人將使用相同的設備。你是否說通過Web SQL或IndexDB存儲密碼是危險的做法?如果是這樣,爲什麼? –
當然,在客戶端存儲用戶名和密碼可能不是好的做法,詹姆斯似乎似乎是真正的問題有待解決。理想情況下,當最終用戶想要訪問離線系統時,他還需要在線進行身份驗證,並使他的工作脫機並在線同步。我會考慮使用Silverlight之類的東西,但在訪問Silverlight的客戶端方面似乎存在問題,因此隔離式存儲是唯一的選擇。 –