SPA应用程序和服务器同步,最佳实践

时间:2013-08-23 13:35:23

标签: rest angularjs single-page-application synchronisation

我正在Angularjs中开发SPA应用程序以将数据加载到我的数据库中。

我有一个Django后端,tastypie提供REST接口。

我正在尝试填充一个由8个通道元素组成的流通池对象。每个泳道可能包含多个库(平均5个或6个)。

Flowcell

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

因此,当我向一个lane对象添加一个新库时,我将详细信息发布到服务器,然后使用GET请求刷新通道的库列表,并且显示刷新。

这可确保同步服务器数据和显示数据。但是,它会在每个Lane与服务器联系并刷新自身时添加延迟。

因此,最好在客户端的每个通道中添加一些库,然后将它们一起更新 - 这将提供更流畅的用户体验,但显示可能无法准确反映数据库中的内容? (我可以想象,如果两者太过不同步,这可能会导致错误。)

或者做我目前正在做的事情被认为更好 - 更新多个小的更改,向服务器发送更多请求,但确保客户端和服务器之间的数据是否一致?

1 个答案:

答案 0 :(得分:1)

我认为你走在正确的轨道上。在更新中采用更细粒度的方法会更好。

首先,它会给客户带来更少延迟的感觉。如果更改很小并且在更改元素时触发,除非网络非常慢,否则每次更改都应该快速且客户端几乎检测不到。

我唯一要说的是,在您更改数据的POST后,您可能不需要再执行另一个GET。除非这是跨越许多用户和会话的某种类型的共享数据模型,否则如果客户端进行更新并且POST通过,则客户端将保留正确的数据集,因此不需要额外的GET。