ajax - post数据之后立刻get数据会获取不到最新的数据?

查看:169
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆