python测试开发django-172.jQuery 发送请求获取的数据设置为全局变量

前言

网页上的数据来源于ajax请求获取服务端数据,通常是写个触发方式获取数据加载到页面。
如果有多个地方需要获取同一个接口的请求数据,每次都去触发请求会导致请求重复,像这种只触发一次请求,页面多个地方需要引用此数据情况,可以设置为全局变量。

jQuery请求数据

先定义全局变量res_obj,获取接口返回结果后重新赋值给res_obj

<script>
// 获取接口返回数据设置为全局变量
var res_obj={};
$.ajax({
    url: '/banks',
    type: 'get',
    dataType: 'json',
    async: false,  // 重要
    success: function(data){
		res_obj=data;
	},
    error:function(jqXHR, textStatus, e){
      console.log("项目数据异常:"+e);
    }
});
console.log(JSON.stringify(res_obj)); // 查看结果
</script>

运行结果

async 异步与同步

async 参数使用说明

  • async 默认是 true,即为异步方式, . a j a x 执 行 后 , 会 继 续 执 行 a j a x 后 面 的 脚 本 , 直 到 服 务 器 端 返 回 数 据 后 , 触 发 .ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发 .ajaxajax.ajax里的success方法,这时候执行的是两个线程。
  • async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

如果设置async为true,那么是获取不到请求结果

<script>
// 获取接口返回数据设置为全局变量
var res_obj={};
$.ajax({
    url: '/banks',
    type: 'get',
    dataType: 'json',
	async: true,  // 无结果
    success: function(data){
		res_obj=data;
	},
    error:function(jqXHR, textStatus, e){
      console.log("项目数据异常:"+e);
    }
});
console.log(JSON.stringify(res_obj)); // 查看结果
</script>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值