反应如何在加载时生成多个UUID(多个选项卡)

时间:2018-04-12 06:26:48

标签: javascript reactjs

尝试为每个连接到我的网络应用的访问者生成UUID。

由于热重新加载而在开发中,同一浏览器中的多个选项卡将获得不同的UUID onload,因为所有选项卡都会一起刷新。

因为fetch需要一段时间,所以最终localStorage会被在一秒钟内分裂过程中生成的不同UUID覆盖。而且我的socket也被设置为3-4个不同的UUID。

在生产开发中,由于没有热重载,这种情况可能很少,但有没有最佳做法可以避免这种情况?

componentWillMount() {
  if (localStorage.getItem('uuid') === null) {
    fetch('http://example.com/visitor/', {
      method: 'GET',
      headers: {
        'Content-Type': 'application/json',
        Accept: 'application/json',
      },
    })
      .then(response => response.json())
      .then(jsondata => {
        localStorage.setItem('uuid', jsondata);
        this.setState({ socket: openSocket('http://localhost:3005') });
        this.state.socket('setname', this.state.userName);
      })
      .catch(err => console.log(err));
  }
}

1 个答案:

答案 0 :(得分:0)

如何在客户端生成uuid并将其推送到后端呢?您可以将uuid这样的库用于此目的