2013-08-23 125 views
0

我正在Angularjs中開發SPA應用程序以將數據加載到我的數據庫中。SPA應用程序和服務器同步,最佳實踐

我有一個Django後端與tastypie提供一個REST接口。

我想填充一個flowcell對象,它由8個lane元素組成。每個泳道可能包含多個庫(平均說5或6個)。

Flowcell 

    Lane 1 
     library 1 
     library 2 
     library 3 
    Lane 2 
     library 5 
    Lane 3 
     library 6 
     library 7 
     etc..... 

因此,在當我添加一個新的圖書館,以車道對象的那一刻,我發佈的信息到服務器,然後刷新車道的庫列表與一個GET請求,顯示刷新。

這確保了服務器數據和顯示數據是同步的。但是,它會在每個Lane聯繫服務器並刷新自身時添加延遲。

因此,在客戶端向每個通道添加一些庫,然後將它們一起更新 - 這會給用戶帶來更流暢的用戶體驗,但顯示可能並不完全反映數據庫中的內容? (我可以想象這可能會導致錯誤,如果兩者變得太不同步)。

還是認爲我現在正在做的更好 - 更新多個小的更改,向服務器發送更多的請求,但確保客戶端和服務器之間的數據是一致的?

+0

是否有多人同時編輯車道數據?換句話說,即使用戶不在客戶端上改變它,服務器數據是否可能不同步? –

回答

1

我認爲你是在正確的軌道上。採取更精細的方式更新會更好。

首先,它會爲客戶創造更少的延遲感。如果更改很小,並且在元素更改時觸發,除非網絡非常慢,否則每次更改都應該很快,並且客戶端幾乎無法檢測到。

我只會說,你可能不需要在更改數據的POST後進行另一個GET。除非這是許多用戶和會話中的某種類型的共享數據模型,否則如果客戶端進行更新並且POST通過,則客戶端將保存正確的數據集,因此不需要額外的GET。