jQueryajax时间差导致的变量赋值问题分析_jquery
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jQueryajax时间差导致的变量赋值问题分析_jquery,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2633字,纯文字阅读大概需要4分钟。
内容图文
本文实例分析了jQuery ajax时间差导致的变量赋值问题。分享给大家供大家参考,具体如下:ajax异步请求,在各种特效方面,做出了不少的贡献,有了它让用户体验更好。下面说一下曾今遇到过的一个问题,今天又遇到了,又花了我一点时间,小问题,但是特别容易忽视,并且不容易想到是什么原因产生的。废话不多说,举个例子大家就明白了。
一、准备测试文件test.php和test.html
1. test.php
<?php echo "1"; ?>
2. test.html
二、问题举例
代码中的alert(error);不管msg返回什么,都只会弹出false,按javascript的执行原理,一般情况下都是顺序执行的,那为什么这个error的值没有被改变呢?原因就在于异步请求是有一个时间差的,为了验证这个时间差,在举个例子,可以让你清楚的看到,这个时间差。
三、验证ajax异步请求的时间差
当你刷新页面后,问题就很清楚,它首先弹出的是false,然后弹出了true,二次弹出之间的时间差,就是ajax异步请求的时间差。从表面上看,这段js代码的执行顺序是这样的上--下--中,其实不是这样的,代码执行的顺序还是上--中--下。为什么会先执行下面的代码呢?那是因为ajax异步请求,需要时间,而js并没有去等待,所以在这里有一个时间差。
四、解决方法
1. 把实际要操作的动作放到回调函数中,逃避这个时间差
前面几个例子,是为了举例,真正写代码,不会那样写,哈哈。
2. 进行同步请求
当你刷新页面时,这里是弹出二个true,为什么会这样呢?加了async:false后,就会有一个等待的过程,也就是说ajax不执行完,不执行下面的代码。用这个方法有个问题,如果等待的时间过长,用户体验很不好的。
更多关于jQuery ajax相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
内容总结
以上是互联网集市为您收集整理的jQueryajax时间差导致的变量赋值问题分析_jquery全部内容,希望文章能够帮你解决jQueryajax时间差导致的变量赋值问题分析_jquery所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。