javascript - Ajax 获取数据的问题
大家讲道理
大家讲道理 2017-04-11 13:00:19
[JavaScript讨论组]

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)
天蓬老师

Fix:

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

引以为戒

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号