仅保存服务器上已更改的对象:Restful service + angularjs

问题描述:

我使用类似按钮显示我的页面上的帖子列表,用户可以打开或关闭该按钮。 为了扼杀我的服务器的流量,我想:仅保存服务器上已更改的对象:Restful service + angularjs

  • 发送更新为所有其中般的地位已经在更换一次的职位同样要求
  • 发送更新修改后的帖子只有
  • 每N秒更新一次类似状态,并且仅在页面退出时更新。不是每次用户切换一个按钮。

这是可能与angularjs?

+0

当你说“更新每N秒“是否会从服务器获取新信息(以防别人喜欢某个状态),还是仅仅将客户端更改推送到服务器? – 2013-02-13 17:11:40

+0

@Trevor高级我只需要将数据推回到我的情况下的服务器。 – nakhli 2013-02-14 18:26:35

我已经写了,可以在这里看到一个例子:

http://plnkr.co/edit/imMGTJ75mKJZT7ispD9E?p=preview

我花了一些时间在上面与评论,并提供获取页面本身,当上显示有用信息运行。如果邮件移动太快,如果希望邮件运行速度较慢,请更改延迟时间。

从您的问题看,您希望在用户对特定帖子进行任何更改时保存该文件。您建议每x秒检查一次更改,但这并不理想(尽管使用setInterval实现起来很简单)。您还提到在页面退出时保存更改,但不能保证页面退出时发生某些事情(例如,用户失去功能)。为了避免上述情况,当用户点击“like”按钮时,我会触发ajax调用,但在第一次点击&时,在节流计时器正在运行时存储其更改并在其后立即推送所有更改计时器结束。

这里是我的plunker代码做一言以蔽之:

  1. 用户“喜欢”或“unlikes”后,它将使一个Ajax调用服务器上后新的信息。在这一点上,任何新的“喜欢”/“unlikes”被投入到需要更新的帖子的“队列”中。

  2. 当第一个Ajax调用成功时,油门计时器启动。在我提供的例子中,它是5秒钟。任何对帖子的更改(“喜欢”,“不喜欢”)都会被抛入同一个“队列”中。

  3. 5秒钟后,它会检查“队列”。如果它是空的,则不采取任何行动。如果它包含项目(例如已更改的帖子),则它将进行第二次Ajax调用并更新服务器上的帖子。

我的例子不会反映你正在处理的内容,但它是一个重要的概念。你可以修改代码,这样它就不会长时间地抑制,或者在一定的时间内只在ajax调用x次之后才进行调节,等等。

+0

感谢您编写示例!很有帮助。我正在仔细观察它。 – nakhli 2013-02-14 19:27:28