ajax - post数据之后立刻get数据会获取不到最新的数据?
本文介绍了ajax - post数据之后立刻get数据会获取不到最新的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在写的一个页面,其中有一个评论框,我是想评论后更新页面显示所有对的最新的评论。
方案一
评论点击提交后post,然后立刻get获取最新的所有的评论数据更新页面。实践的时候发现一个问题,就是获取到的并不是最新的数据,刚刚提交的评论没有在获取到的数据中,可能后端处理是需要一定的时间的,所以获取不到最新的数据。是这样理解到的吗?
axios.post(url + 'topic/' + topicId + '/replies',{
accesstoken,
reply_id : relyId,
content
}).then(function(){
alert('回复成功!');
getTopicData(renderTopic,topicId);
}).catch(error=>{
alert('回复失败!!!');
console.log(error);
alert(error);
});
}
getTopicData (cb,id) {
axios.get(url+'topic/'+id).then(res => {
cb(res.data.data);
this.setState({
show : false
});
}).catch(error => {
console.log(error);
this.setState({
msg : '加载失败!'
})
})
}
const mapStateToProps = (state) => {
return {
topicId : state.topicState.topicData.id
}
}
const mapDispatchToProps = (dispatch) => {
return {
renderTopic : (topicData)=>{
dispatch(actions.getTopic(topicData))
}
}
}
方案二
把要提交的评论从页面上获取到,通过dispatch来更新store,从而更新页面。
实际的工作环境中的解决方案是怎么样的???
解决方案
一般都方案一,get方法写到post回调里了吗?
补充修改一下:
代码我看不出问题。
之前遇到过ie浏览器缓存get方法数据,导致下次get时直接读的浏览器缓存,最后解决方案是给get方法url上加个时间戳。
这篇关于ajax - post数据之后立刻get数据会获取不到最新的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文