Ajax 获取数据的问题

ajax获取数据成功,利用数据填充页面,然后数据消失

Rest.get(_latest_data_url,headers,function(rep){
        for (var key in rep){
            var temp_dp=$("#latest_"+key);
            if(temp_dp&&key!='usr'){
                temp_dp.val(rep[key]);
            }
        }
    },function(rep){
        Tips.responseAlert(rep);
    },true);
    

代码如上,利用ajax同步发送get的请求获取数据,我利用浏览器调试,发现数据是成功获取到的,但是调试进入jquery库的时候,页面上的数据突然清空了

上面的接口其实就是ajax,第一个参数是url,第二个是headers,第三个是成功时的回调,第四个是失败时的回调,第4个表示是否同步,发的是get请求

阅读 2.5k
2 个回答

Fix:

其实是我自身的问题,不过还是提出来给大家留个教训吧。
在这步填充数据之前,还有一步获取页面结构(就是获取页面中的元素,页面元素是随数据库更改而更改的),也就是说,页面是动态构建的,但是那一步我用了异步的。这样就有这样的问题了:
第一次触发时:
一开始无页面元素,获取页面元素,填充页面,获取数据,填充页面数据
第二次及以后触发时:
一开始有页面元素,异步&(获取页面元素,重构页面结构),同步&(获取数据,填充页面数据)
所以就有下面几种可能了:
1.先将数据填充到了一开始的页面元素,然后异步获取页面元素完成,重构页面(此时重构的页面是一样的,但是数据已经不见了,看起来就是一闪而过)
2.异步先完成,重构页面,获取数据,填充数据(正常)
3.异步先完成,重构页面途中,获取数据成功,填充数据,数据只填充了一部分(没遇到过,不过感觉有这种可能)

引以为戒

val() 方法返回或设置被选元素的值。
元素的值是通过 value 属性设置的。该方法大多用于 input 元素。你的temp_dp是input或者是表单类的标签元素吗比如select option?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题