我在我的网站上使用DRF和AngularJS。我提出了一个简单的请求,如 -
$http({
method: "GET",
url: "http://127.0.0.1:8000/api/sendeop",
}).then(function success(response) {
//some processing on the data returned
}, function error(response) {});
现在,如果数据库中的数据发生变化,则不会反映在angularJS上,因为这只会在加载时生成一次请求。如何观察数据变化的api并在angularJS中处理它?</ p>
我不太确定$watch
或$digest
是否解决了我的问题,但如果他们这样做了,我该如何使用它们?
答案 0 :(得分:3)
从您的问题陈述中我理解以下内容:
如果上述理解是正确的,那么我建议如下:
(用于捕获单行数据的更改)
tsChanged
(TimeStamp for changed data)列。tsChanged
字段。tsChanged
也会发送给客户端。service
(比如updateCheckerService
),用于比较tsChanged
值(数据库中当前tsChanged
与tsChanged
之间的值Select
从客户端发送的)。轻量级$interval
查询即可。updateCheckerService
点击tsChanged
,然后传递客户端已存在的true
。tsChanged
(表示数据已更改),则再次调用数据加载服务。(用于捕获多行数据的变化)
Update
列,该列将数据存储在数据库中。tsChanged
查询都会更新该行的tsChanged
字段。updateCheckerService
的最高值会发送到客户端。tsChanged
),用于比较tsChanged值(数据库中当前最高 tsChanged
与Select
之间的值从客户端发送的)。轻量级$interval
查询即可。updateCheckerService
点击tsChanged
,然后传递客户端已存在的true
。<input type=submit name="name_here" value ="<?php echo $row['Sl_no']; ?>" >
(表示数据已更改),则再次调用数据加载服务。优点:
由于客户端数据加载服务昂贵且繁重,因此只有在确定数据库中的数据发生更改时才最好调用。 为了确保数据发生变化,我们正在使用轻量级服务,从而有效地使过程变得更轻。
希望它有所帮助!
答案 1 :(得分:1)
欢迎你错了,angular js只是客户端脚本语言, 如果您想跟踪数据库中的更改并希望显示更新的数据。
答案 2 :(得分:0)
您可以实施通知系统(请参阅Amazon SQS或SNS),或者如@str所述,您可以实施实时呼叫(请参阅ajax long polling,websockets)。