当前位置: 代码迷 >> JavaScript >> React / Flux - 监控api和更新新数据存储的最佳方法?
  详细解决方案

React / Flux - 监控api和更新新数据存储的最佳方法?

热度:104   发布时间:2023-06-07 15:28:39.0

我正在试图找出当api返回更改数据时如何更新存储。 当其他用户向api写入数据时,我的一个组件应该呈现“实时”数据。 什么是最好的方法? 间隔轮询异步数据?

我正在使用ReactJS / AltJS,现在我正在使用jQuery在我的Actions中进行异步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);

首先,您必须定义什么是“实时”数据。 在用户将一些数据写入服务器后,您需要等多久才知道有新数据? 如果您希望在1秒内收到通知,还需要仔细设计后端系统。

在你的问题中,我认为几秒钟的延迟是可以容忍的。 其中一个简单的解决方案是轮询。 根据 ,您可以在componentDidMount创建一个定时器来定期调用API,并清理componentWillUnmount所有componentWillUnmount

不要将计时器逻辑放入可能由man组件共享的操作中。

  相关解决方案