当使用ajax调用更改数据时,实现数据库和网页之间同步的最佳方法是什么?举个例子,假设我有一个添加注释的表单,我希望它能够异步工作。因此,我创建了一个JS代码,将该表单提交给数据库。在不刷新页面的情况下向用户显示这些新数据的最佳做法是什么?目前,我可以想出3种解决这个问题的方法:
我不喜欢1中的代码重复,也就是说,我们必须实现两次处理逻辑。我也不喜欢2,因为从服务器发送数据的开销很大。至于3.我最喜欢这种方法,但仍然存在一些来回发送数据的开销。我知道在大多数情况下,这些间接费用可能不会影响系统的运行,但我想知道是否有其他解决方案来解决这个问题,以及确保数据同步的最佳实践是什么?
发布于 2012-04-24 02:20:58
您可能需要考虑使用模型和集合,比如backboneJS是如何做到的。有点像“数据库的本地副本”。首先,您的模型只获取几个记录以供显示,比如待办事项列表中的前10件事情。模型有CRUD方法,您可以在其中操作数据。
然后,对于您的界面,您有单独的视图代码。这些视图连接到模型,执行CRUD操作,以及听取模型数据更改,这些更改可以来自当前模块接口或接口的其他部分。如果页面的某一部分更改了数据,则会通知连接到同一模型的其余部分。模型可以是任何东西,它可以表示数据库中的一个表或一个表的组合。
类似地,该模型将具有AJAX同步功能。其中修改的每一个数据都通过AJAX调用反射到服务器。当调用完成后,您将通知所有挂接接口进行相应更新。由于数据包含在模型中,所以只需将更改发送到服务器并侦听是否成功。至于来自服务器的实时数据,您可以在模型中创建一些轮询功能来更新它的数据。如果有更改,请通知所有挂接接口。
https://stackoverflow.com/questions/10295833
复制相似问题