打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jquery ajax方法小细节之同步_霸气好少侠
今天 为了模拟做一个极其简单可配置页面 打算从xml里面读出组件内容 然后 用jquery生成相应的模块。对于文件的读取jquery提供了相当方便的方法 ajax。基本的语法就不介绍了 极其简单 举一个基本的例子 $.ajax({
type: 'GET',
url: 'test.xml',
dataType: 'xml'
});
这样就能获取到名字为test的xml内容 接着做相应的解析就可以了
但是 在ajax方法中有个小细节 是我平时没有注意到的 不知道大家注意了没有。就是在ajax中的同步问题,也就是这个问题困扰了我几个小时。
情况是这样 在我的xml文件中有这些内容
<function>
<f>1</f>
<f>2</f>
</function>
在我的jquery代码中是这样的
$(document).ready(function(){
var i=0;
var arr=new Array(); 
$.ajax({url:'test.xml',dataType:'xml',success:function(xml){
arr=$(xml).find('f');
}});
alert(arr.length)
})
结果打印出来的是0 也就是在arr中的赋值语言看起来是无效的 正常情况应该是2
经过我的研究 也不知道对不对 有问题可以提出
在jquery中是异步执行机制 也就可以理解为 在上面那段代码中 ajax方法和alert方法是同时执行的也就是说有可能在ajax方法还没执行完的时候 就执行了alert方法 所以打印出的是0
解决办法就是修改为同步执行 就是先把ajax方法执行完了才执行ajax以下的代码 修改也很简单就是在ajax方法参数中添加async:false
也就是把jquery代码改为 $(document).ready(function(){
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jQuery AJAX 简介 | 菜鸟教程
jquery的使用简化代码开发
使用jQuery简化Ajax开发——Ajax开发入门[1]
Jquery中$
learning jQuery 学习笔记十六(+jQuery 1.4.1 API)
jQuery 在ajax回调函数中使用$(this)无效不起作的的解决方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服