Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest SPA应用程序、服务器同步、最佳实践_Rest_Angularjs_Single Page Application_Synchronisation - Fatal编程技术网

Rest SPA应用程序、服务器同步、最佳实践

Rest SPA应用程序、服务器同步、最佳实践,rest,angularjs,single-page-application,synchronisation,Rest,Angularjs,Single Page Application,Synchronisation,我正在Angularjs中开发一个SPA应用程序,将数据加载到我的数据库中 我有一个Django后端,tastypie提供了一个REST接口 我试图填充一个flowcell对象,它由8个车道元素组成。每个通道可能包含多个库(例如平均5或6个库) 因此,当我向一个lane对象添加一个新的库时,我将详细信息发布到服务器,然后使用GET请求刷新lane的库列表,并且显示刷新 这可确保服务器数据和显示数据同步。但是,在每个通道与服务器联系并刷新自身时,它确实会增加延迟 因此,是否认为在客户端的每个通道中

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

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

我试图填充一个flowcell对象,它由8个车道元素组成。每个通道可能包含多个库(例如平均5或6个库)

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

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

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


还是认为我现在所做的更好—更新多个小更改,向服务器发送更多请求,但确保客户端和服务器之间的数据一致?

我认为您的做法是正确的。在更新中采用更细粒度的方法会更好

首先,它将为客户创造更少延迟的感觉。如果更改很小,并且在元素更改时触发,除非网络非常慢,否则每个更改都应该很快,并且客户端几乎无法检测到


我想说的唯一一件事是,在发布更改的数据后,您可能不需要再做一次GET。除非这是跨多个用户和会话的某种类型的共享数据模型,否则如果客户机进行更新并且帖子通过,客户机将持有正确的数据集,因此不需要额外的GET。

是否有多个人同时编辑lanes数据?换句话说,即使用户没有在客户机上对服务器数据进行变异,服务器数据是否会失去同步?
Flowcell

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