首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ajax网页与数据库的同步

ajax网页与数据库的同步
EN

Stack Overflow用户
提问于 2012-04-24 10:08:53
回答 1查看 555关注 0票数 0

当使用ajax调用更改数据时,实现数据库和网页之间同步的最佳方法是什么?举个例子,假设我有一个添加注释的表单,我希望它能够异步工作。因此,我创建了一个JS代码,将该表单提交给数据库。在不刷新页面的情况下向用户显示这些新数据的最佳做法是什么?目前,我可以想出3种解决这个问题的方法:

  1. 将JS代码放入回调中,在从服务器接收到ok消息后,该回调将处理该数据并将其插入到页面上的适当元素中。
  2. 作为服务器的响应,发送元素中应该显示的所有数据,然后使用JS插入所有内容。
  3. 某种介于1和2之间的混合,作为来自服务器的响应,只发送处理过的新数据并将其插入到适当的位置。

我不喜欢1中的代码重复,也就是说,我们必须实现两次处理逻辑。我也不喜欢2,因为从服务器发送数据的开销很大。至于3.我最喜欢这种方法,但仍然存在一些来回发送数据的开销。我知道在大多数情况下,这些间接费用可能不会影响系统的运行,但我想知道是否有其他解决方案来解决这个问题,以及确保数据同步的最佳实践是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-24 10:20:58

您可能需要考虑使用模型和集合,比如backboneJS是如何做到的。有点像“数据库的本地副本”。首先,您的模型只获取几个记录以供显示,比如待办事项列表中的前10件事情。模型有CRUD方法,您可以在其中操作数据。

然后,对于您的界面,您有单独的视图代码。这些视图连接到模型,执行CRUD操作,以及听取模型数据更改,这些更改可以来自当前模块接口或接口的其他部分。如果页面的某一部分更改了数据,则会通知连接到同一模型的其余部分。模型可以是任何东西,它可以表示数据库中的一个表或一个表的组合。

类似地,该模型将具有AJAX同步功能。其中修改的每一个数据都通过AJAX调用反射到服务器。当调用完成后,您将通知所有挂接接口进行相应更新。由于数据包含在模型中,所以只需将更改发送到服务器并侦听是否成功。至于来自服务器的实时数据,您可以在模型中创建一些轮询功能来更新它的数据。如果有更改,请通知所有挂接接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10295833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档