级联城市因为ajax的异步请求导致的问题
来源:互联网 发布:施工计划进度表软件 编辑:程序博客网 时间:2024/04/26 05:10
无限极城市级联菜单 在进行ajax的异步通信的时候 ,默认加载页面就执行方法,偶尔就会出现 页面的请求有返回值但是不能加载到DOM中去的问题,在考虑过缓存问题,尝试过加参数随机数,以及使用setInterval 和 setTimeout 仍然不凑效的情况下 通过仔细分析它的ajax通信原理终于揭开谜底
出现这个问题的主要原因就是 是用jquery的异步请求的时候,页面返回值返回过来,还没有执行返回方法,就已经往下执行了,所以应该讲异步请求改为同步请求
$.ajaxSettings.async = false;
// JavaScript Document// 城市联动function areaAjaxReturn(check,ajaxUrl){ $.ajaxSettings.async = false;//处理同步请求 //判断有几级 城市联动菜单 $.getJSON(ajaxUrl+'/shop/add/',{'type':'jibie','t':new Date().getTime()},function(data){ var span = ''; if(data.data!= ''){ for(var i=0;i<2;i++){ span += '<span class="span span'+(i+1)+'"></span>'; } $('.area').after(span); } })function changes(num,area,vals){ $('.span').each(function(index, element) {if(index+1>num){ $(this).html('');}});$.getJSON(ajaxUrl+'/type/ajax',{'pid':$('.'+area).val(),'t':new Date().getTime()},function(data){ var html = ''; if(data.data!=null){ html = '<select class="aress area'+num+'">'; html += '<option value="-1">请选择</option>'; $.each(data.data,function(index,val){ html += '<option value="'+val.area_code+'">'+val.area_name+'</option>'; }) html += '</select>'; } $('.span'+num).html(html); $('.area'+num).change(function(){ var valsz = vals; if($(this).val() != '-1'){ valsz = vals+$(this).val()+','; } $('input[name=area]').val(valsz);$('input[name=area_code]').val(valsz); changes(num+1,'area'+num,valsz); }) }) } $('.area').change(function(){ var vals = ','+$(this).val()+','; $('input[name=area]').val(vals); $('input[name=area_code]').val(vals); changes(1,'area',vals); }) if(check){ $('.area').change(); } }
使用该方法引用
areaAjaxReturn(true,'__SELF__');在执行异步请求的时候 会偶尔出现这种情况
在变成同步请求之后就不会出现这种问题,下面是正常显示的结果
- 级联城市因为ajax的异步请求导致的问题
- ajax开发:Promise解决多个异步Ajax请求导致的代码嵌套问题
- ajax请求的异步嵌套问题分析
- ajax请求的异步嵌套问题分析
- Ajax的异步请求
- javascript Ajax 同步请求与异步请求的问题
- IE6异步请求缓存导致的乱码问题
- ajax异步问题导致的刷新页面数据不更新
- js的ajax的异步和同步请求的问题
- javascript的ajax异步请求
- ajax异步请求的坑
- jq的ajax请求同步与异步的问题
- 防止因为自动缓存,导致flash调用http请求返回304的问题
- 请求Http时可能因为字符问题导致错误的特殊字符转码
- Jquery ajax异步请求带来的问题及解决方案
- jQuery中ajax异步请求造成的问题
- 多个ajax请求的同步异步问题
- 关于使用ajax发送请求异步的问题
- SAP ABAP二分查找(binary search)实际问题的深度分析
- 开博第一篇
- USACO 2.1.1The Castle城堡
- wsgi+webob+routes学习笔记-初学篇(下)
- 百度最新面试题集锦
- 级联城市因为ajax的异步请求导致的问题
- 《启示录》读书笔记系列--笔记十三
- 查看端口占用
- 为MySQL选择合适的备份方式
- linux网络服务器框架转载
- vim初学配置笔记 vimrc
- LR 杂记--loadrunner录制回放常见问题总结
- Qt之界面实现技巧
- 获取系统时间的方法--linux