React/Flux——监控api和更新存储新数据的最佳方式
React/Flux - Best way to monitor api and update store on new data?
我试图找出如何更新存储时api返回更改的数据。当其他用户向api写入数据时,我的一个组件应该呈现"实时"数据。最好的方法是什么?轮询异步数据的间隔?
我正在使用ReactJS/AltJS,现在我正在使用jQuery在我的动作中进行异步api调用。
谢谢!
BookActions.js:
getBook(bookId) {
$.ajax({ url: '/api/books/' + bookId })
.done((data) => {
this.actions.getBookSuccess(data);
})
.fail((jqXhr) => {
this.actions.getBookFail(jqXhr);
});
}
BookStore.js
import alt from '../alt';
import BookActions from '../actions/BookActions';
class BookStore {
constructor() {
this.bindActions(BookActions);
this.books = [];
}
onGetBookSuccess(data) {
this.books = data;
}
onGetBookFail(errorMessage) {
toastr.error(errorMessage);
}
}
export default alt.createStore(BookStore);
首先,您必须定义什么是'live'数据。在用户向服务器写入一些数据之后,要等多久才能知道有新数据?如果你想在1秒内收到通知,你还需要仔细设计你的后端系统。
在你的问题中,我假设几秒钟的延迟是可以容忍的。一个简单的解决方案是轮询。根据react文档,您可以在componentDidMount
中创建一个计时器来定期调用API,并清理componentWillUnmount
中的所有内容。
相关文章:
- 如何“;过滤器”;或者以其他方式重构该数据
- 在页面上记录数据并实现pushstate()的最佳方式
- 以角度渲染表中数据的最佳方式
- DC.js数据表没有按应有的方式显示
- 存储数据的最佳方式是什么,以便与jquery一起使用
- 显示数据的最快方式
- 数据在确认框中的显示方式存在问题
- 以编程方式透视谷歌可视化数据表
- 将数据从视图传输到javascript的最佳方式
- 在JSX点击中传递数据的正确方式
- 以编程方式为传单地图上的标记提供数据属性
- AngularJS中使用ajax获取数据的最佳方式是什么
- Spring MVC与Google图表,创建javascript数据表的最佳方式是什么
- 更新视图和控制器之间的角度重复数据值的最佳方式是什么
- 有没有办法对一些javascript进行沙盒处理,这样它就不能以任何方式将数据发送到服务器
- 如何将相同的 JavaScript 数据传递给 HTML 两种不同的方式
- 如何以与使用Javascript的PHP相同的方式获取数据
- 在定期更新的 Angular 中存储和使用数据的最佳方式
- 如何以编程方式将所需行移动到数据表的顶部
- 显示具有 MVC 数据绑定视图模型 ASP.NET JQuery 对话框的最佳方式