gpt4 book ai didi

AngularJS 在服务器和客户端之间自动同步数据

转载 作者:行者123 更新时间:2023-12-03 05:46:13 25 4
gpt4 key购买 nike

AngularJS 文档中有些东西我似乎找不到,或者可能只是我丢失了。

我正在后端使用 NodeJS 和 Express 创建一个 Web 应用程序,并试图了解它如何与前端的 Angular 交互。特别是,我将为 Angular 提供一个 JSON API 来从中获取信息。我希望前端始终保持最新状态。

我的问题是:

  • 双向数据绑定(bind)功能是否意味着 Angular($resource 或$http) 每隔n自动从服务器获取数据秒?
  • 它自然会使用长轮询、短轮询还是 Websocket?
  • 是否需要JQuery来实现服务器端与客户端的同步或者一切都可以完成与 Angular ?
  • 是否需要添加额外的代码才能实现此行为发生?我需要使用 $timeout 吗?

我发现的每个示例都涉及客户端一次获取数据。未与服务器同步数据。

最佳答案

AngularJS 中的双向绑定(bind)指的是数据模型($scope)和 View (指令)。例如,如果模型中的数据发生变化, View 将自动更新。同样,如果用户修改 View 中的数据,您的模型将自动更新。

与 Web 服务的交互是通过 $http 服务模块进行的。因此,要从 RESTful API 获取数据,您需要执行以下操作:

$http.get('/someUrl').success(successCallback);

$http 的完整文档位于 AngularJS site 。我想你会发现它与 jQuery 的 $.ajax 方法非常相似。您可以使用 Angular 的 $timeout 服务(基本上是 setTimeout 的包装器)轻松设置 $http.get() 进行短轮询。

对于 AngularJS 客户端和服务器 API 之间的实时更新,您可能需要查看 Socket.io 。它使用 node.js 在浏览器和服务器之间创建实时套接字连接,并为旧版浏览器提供后备机制(闪存、长轮询)。 GitHub 上有一个样板项目,演示了如何使用 Socket.io 设置 AngularJS: https://github.com/btford/angular-socket-io-seed

回顾一下:

Does the two-way data binding feature mean Angular ($resource or $http) automatically fetches the data from the server every n seconds?

不,Angular 模型和 View 之间存在双向绑定(bind)。

Does it naturally use long polling, short polling or websockets?

Angular 默认情况下不包含任何这些内容。您必须自己设置它们。

Do you need JQuery to achieve the server-client syncing or can everything be done with Angular?

从广义上讲,$http 是 jQuery 的 $.ajax 的 Angular 等价物

Do you have to add extra code to make this behavior happen? Do I need to use $timeout?

使用 $timeout 进行短轮询,或者为长轮询和/或 Websocket 推出您自己的解决方案(请参阅 angular-socket-io-seed 项目)。

关于AngularJS 在服务器和客户端之间自动同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15416879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com