关于Ajax异步请求碰到的问题

需求:在实际开发过程中遇到一个问题,要求页面某些数据在初始化加载的时候根据登陆用户,把有关区镇等信息从用户表中获取并初始化加载进去,用户可以再做修改,用户做出修改后保存相关报表到新的数据库表中,再进入时可以展示相关报表保存的区镇等信息。

问题描述:加载用户信息和相关报表的初始化数据都为Ajax异步请求,线下测试换其他地区,保存数据,重新进入能加载到报表的数据,线上测试发现保存后再次进入加载的区镇等信息有时为用户信息,有时为报表保存的信息。

原因:多个Ajax请求为异步并发执行,没有执行顺序,根据请求响应的速度决定那个先返回结果。

个人见解:页面js代码加载用户的Ajax请求方法写在初始化数据的Ajax请求前,线下测试数据量小,请求相应时间短,每次都能按照正常需求加载数据,线上数据量大,Ajax返回结果的顺序不确定,数据加载有时能按照需求加载报表中保存的区镇等有关信息,有时加载的是用户中保存的信息

解决方法:1.将初始化数据的方法放入到加载用户信息的回调函数最后

                  2.关闭Ajax的异步请求为同步请求

                  3.windows.onload = function{}方法将Ajax请求改为页面加载完后执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值