Javascript React应用程序长时间运行ajax

Javascript React应用程序长时间运行ajax,javascript,reactjs,redux,react-redux,jsx,Javascript,Reactjs,Redux,React Redux,Jsx,我们有一个React Redux应用程序,它需要长时间运行ajax来显示其主要内容 例如,考虑显示一些项目的列表,获取该列表需要1-2秒 目前,我已将ajax调用放在清单组件的componentDidMount中。但我可以看到,在开始通话之前,通话大约需要500-900毫秒。这增加了后端延迟,并没有创造非常有利的体验 我们希望尽早触发Ajax调用。我曾想过在index.js或public index.html中触发我的ajax,并在稍后的componentDidMount中将结果存储在windo

我们有一个React Redux应用程序,它需要长时间运行ajax来显示其主要内容

例如,考虑显示一些项目的列表,获取该列表需要1-2秒

目前,我已将ajax调用放在清单组件的componentDidMount中。但我可以看到,在开始通话之前,通话大约需要500-900毫秒。这增加了后端延迟,并没有创造非常有利的体验


我们希望尽早触发Ajax调用。我曾想过在index.js或public index.html中触发我的ajax,并在稍后的componentDidMount中将结果存储在window变量中。我将阅读它,但我的解决方案听起来更像是一种黑客,有人能推荐更好的吗?

您可以在组件的构造函数中进行调用。还有一种称为
componentWillMount
的生命周期方法,您可以使用它。这两种方法都将在装入组件之前启动ajax调用。如果您安装的是一个大型组件,那么它可能是值得的


另一方面,如果您的延迟仅仅来自于下载和解析javascript代码,那么就很难进行优化。然后我建议检查服务器端呈现或代码拆分。但是这些解决方案需要相当长的时间才能实现。

为什么不在组件呈现响应并将其存储到您的状态之前执行呢?如果没有看到你的应用程序是如何构造的,很难提供一个答案。如果你想立即加载视图,应用程序加载时,它不会认为是预加载数据。您不需要将其存储在窗口变量中,只需将其存储在redux中,就像您在componentDidMount中调用它一样。在应用程序最顶级组件的
componentDidMount
中获取数据,并将结果存储在您想要的任何位置(state或redux store或smth),这是在使用connect方法并将整个操作作为对象作为分派参数传递(导入*作为来自“./actions”的操作)时,使用React而不使用任何恶意攻击的最快方法。我忙得不可开交,甚至忘了我可以在任何我想去的地方对商店采取行动。感谢大家再次提醒我们基本知识:)。我肯定会在加载过程的早期尝试调度我的ajax调用操作。
componentWillMount
不应用于附带影响的函数调用。()