这次项目中因为前端有事儿,项目紧急加个新需求,于是自己硬着头皮上去看了下前端的逻辑后便开始动手了,但是为了简单起见就直接自己写了个ajax调服务来获取数据,然后修改前端定义的全局数据

 //ajax来请求数据
$.ajax({
method:config.methodGet,
url:"http://localhost:8080/yzxx",
dataType:'json',
data:{"xxx":"111"},
success: function (data) {
var _data=data;
if(_data){
_this.mapKey = data.mapKey;
_this.mapID = data.mapID;
_this.level = data.level;
_this.isQsMap = data.isQsMap;
_this.isReturn = data.isViewReturn;
}
},
error: function (data,textStatus, errorThrown) {
// 报错信息
fdGlobal.requestError(data, textStatus, errorThrown);
}
});

_this对象是前端定义的一个全局变量,在示例代码中我修改了_this对象里面的值,并希望在后面的程序执行时使用我修改后的_this对象,但是经过在代码执行中,经过js调试发现,在第二个ajax中_this作为参数,查看_this的值已经改变,但是在后台服务中接收到的参数并没有改变,经过查阅资料得知,ajax默认为异步请求,在开始执行ajax代码时,后面的代码不会等待ajax请求执行完毕便会直接执行,所以我在第一个ajax中修改了_this的值,在还没有修改完毕时,第二个ajax开始执行,这时用到的参数_this是还没有修改的值,所以后台接收到了旧的值,而在第二个ajax将请求发送到后台之后,_this的值才被第一个ajax请求修改,所以需要注意,在ajax请求中如果对全局参数有修改的行为,并且后面需要用到修改后的正确值,需要对方法标注为同步请求,具体方式为增加参数 async:false  示例如下

$.ajax({
method:config.methodGet,
url:"http://localhost:8080/yzxx",
dataType:'json',
              //设置为同步请求
async:false,
data:{"xxx":"111"},
success: function (data) {
var _data=data;
if(_data){
_this.mapKey = data.mapKey;
_this.mapID = data.mapID;
_this.level = data.level;
_this.isQsMap = data.isQsMap;
_this.isReturn = data.isViewReturn;
}
},
error: function (data,textStatus, errorThrown) {
// 报错信息
fdGlobal.requestError(data, textStatus, errorThrown);
}
});

ajax中的同步与异步修改数据的问题的更多相关文章

  1. Ajax中的同步和异步

    var flag=true; ; $.ajax({ url: "http://www.jb51.net/", success: function(data){ flag=false ...

  2. 关于js中的同步和异步

    最近看到前端面试问到js中的同步和异步,这个问题该怎么回答? 梳理一下,js对于异步的处理,很多人的第一反应是ajax,这只能说是对了一半. 1.个人觉得,js中,最基础的异步是setTimeout和 ...

  3. Promise-js中的同步和异步

    js中的同步和异步   自从读了研后,走上了学术之路,每天除了看论文就是做实验,最后发现自己还是喜欢开发呀,于是我又重回前端啦~ 隔了这么久没学前端,好像很多东西都忘了不少,而且不得不说前端的技术更新 ...

  4. 一、表单和ajax中的post请求&&后台获取数据方法

    一.表单和ajax中的post请求&&后台获取数据方法 最近要做后台数据接收,因为前台传来的数据太过于混乱,所以总结了一下前台数据post请求方法,顺便写了下相对应的后台接收方法. 前 ...

  5. js中请求数据的$post和$ajax区别(同步和异步问题)

    $.post和$.Ajax都为页面上向后台发送请求,请求数据 1.post 因为post默认为异步请求,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出很多问题 2. ...

  6. input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has

    input屏蔽历史记录   设置input的扩展属性autocomplete 为off即可 ;function($,undefined) 前面的分号是什么用处   ;(function($){$.ex ...

  7. js中的同步与异步

    同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码    异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而 ...

  8. 让你高效的理解JavaScript中的同步、异步和事件循环

    "同步请求","异步请求"相信这两词在程序猿的世界中频频出现,到底是词性的妖娆,还是撸代码的基础要求,下面直接分享本人学习的好东西,保证让你深入浅出,爽得不要不 ...

  9. JS中的同步和异步

    javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要 ...

随机推荐

  1. Android 开发笔记

    11.android使用全局变量 定义Data类继承Application 在manifest.xml中声明 http://blog.csdn.net/feiyangxiaomi/article/de ...

  2. python爬虫高级功能

    上一篇文章中我们介绍了爬虫的实现,及爬虫爬取数据的功能,这里会遇到几个问题,比方站点中robots.txt文件,里面有禁止爬取的URL.还有爬虫是否支持代理功能.及有些站点对爬虫的风控措施.设计的爬虫 ...

  3. 解决git 不同branch 下node_moudes不同步的问题

    做nodejs开发,或者vue react等开发的同学,在使用git 做版本管理的时候肯定碰到过这个问题. 按常规做法node_modules 肯定是被添加到.gitignore中不需要被提交的 但是 ...

  4. Redux 入门到高级教程

    Redux 是 JavaScript 状态容器,提供可预测化的状态管理. (如果你需要一个 WordPress 框架,请查看 Redux Framework.) Redux 除了和 React 一起用 ...

  5. hdoj:2071

    Max Num Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  6. spingboot中的美女banner.txt

    .::::. .::::::::. ::::::::::: ..:::::::::::' '::::::::::::' .:::::::::: '::::::::::::::.. ..:::::::: ...

  7. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库03 —— 安装HAWQ 2.3.0.0

    一. HAWQ2.3.0环境准备[全部主机节点]: 1, vim /etc/sysctl.conf,编辑如下内容: kernel.shmmax= kernel.shmmni= kernel.shmal ...

  8. ubuntu开机后弹出System program problem detected的解决办法

    sudo gedit /etc/default/apport 将enabled=1改为enabled=0保存退出重启后就可以了

  9. Dynamic attention in tensorflow

    新代码在contrib\seq2seq\python\ops\attention_decoder_fn.py 和之前代码相比 不再采用conv的方式来计算乘,直接使用乘法和linear 给出了两种at ...

  10. 深度解剖session运行原理

    已经大半年没有更新博客了,一方面有比博客更重要的事情要做,另外一方面也没有时间来整理知识,所以希望在接下来的日子里面能够多多的写博客来与大家交流 什么是session session的官方定义是:Se ...