多个Ajax请求的结果,一个依赖于其他Ajax输出
Result of Multiple Ajax requests, one depends on other Ajax Output
我正在Perl Catalyst上开发一个web应用程序,并使用ReactJS作为视图,jQuery用于AJAX,并在标题中添加JSX作为脚本。
我能够在页面上获取AJAX JSON数据并每10秒刷新一次数据。我们在服务器上创建了这个选项,以便每10秒获取一次数据。此应用程序将由许多用户一起使用,因此我们自动生成一个键,如果该数据库表上的任何数据被更新,该键将递增。我们将此键设置在其余部分,并且可以通过AJAX JSON访问它。
我想实现一个React组件,它将检查这个自动生成的AJAX JSON键,并将其与之前的值每10秒进行比较。如果它们不相等,那么它将调用其他AJAX函数或React组件来更新视图页面上的数据,旧的值将被新的值所取代。
我已经搜索了很多,但没有得到在ReactJS中实现这一逻辑。任何逻辑或参考链接都会有所帮助。
考虑将"Refresh_token"组件作为控制器。它将处理所有检查令牌,并在令牌更改时获取新订单。"Order list"不应该知道令牌何时更改,它的工作是在新列表到达时重新呈现其视图。
//Section 1 Starts Here
var Orderlist = React.createClass({
render: function(){
var orderlist11 = [];
for(var i = 0; i < this.props.list.length; i++){
var orderItem = this.props.list[i];
orderlist11.push(
<div className="card">
<div className="title">
Order Number {orderItem.ordernumber}
</div>
<div className="content">
Date & Time : {orderItem.bizorderdate} <br />
Username : {orderItem.userid}
</div>
</div>
);
}
return (
<div> {orderlist11} </div>
);
}
});
////// Section 1 ends here
var RefreshToken = React.createClass({
getInitialState : function(){
return {
token : -1 , //Or anything that is not a token.
orderlist : []
}
},
refreshTimer : null,
componentDidMount : function(){
this.get_order_list(); //Get the intial order list
this.refreshTimer = setInterval(this.refresh_token, 10000); //Call to check the new token every 10s
},
refresh_token : function(){
$.ajax({
type: 'GET',
url: "/order/refresh",
headers: {
Accept : "application/json","Content-Type": "application/json"
},
success: function (resp){
var newToken = resp;
console.log(newToken); //it give the value of refresh eg. ["20150925313"] //Assume this will give the new value of the order list changed.
if(newToken != this.state.token){
this.setState({ token: newToken});
this.get_order_list() //Get the new list when token has changed.
// console.log(this.state.resp);
}
}.bind(this)
});
},
get_order_list : function(){
$.ajax({
type: 'GET',
url: "/order/list/10/1",
headers: {
Accept : "application/json", "Content-Type": "application/json"
},
success: function(orderlist) {
// console.log(orderlist);
// console.log(this.state.orderlist);
this.setState({orderlist: orderlist});
}.bind(this),
error: function(xhr, status, err) {
}
});
},
render: function(){
return <Orderlist list={this.state.orderlist} />
}
});
React.render(
<RefreshToken />,
document.getElementById('list_of_orders')
);
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- 作为一个二维数组,从ajax接收
- 在任何AJAX调用之前触发一个javascript函数
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 一个ajax循环有两个输出错误innerHTML
- 我可以让我的Ajax调用引起一个“;进行中”;光标
- 另一个Ajax函数触发的Ajax函数不起作用
- 是否可以创建一个带有进度条的跨浏览器AJAX照片上传器
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- Ajax/Php得到一个以上的结果
- 在jQuery AJAX请求后创建一个Cookie
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- 当阻止Enter键提交AJAX表单时,关注下一个输入是't工作
- 是纯粹的Ajax一个javascript库
- 两个提交一个ajax一个常规表单
- 如何解决这个问题,在java脚本和ajax一个警报显示在ajax,如果值是正确的
- 传递给ajax一个带有"/"的字符串