老师,请问整个的流程是这样的吗,谢谢

来源:2-10 渲染数据

qq_慕移动3101913

2019-11-21 15:33:37

第一个问题:请问整个的流程是这样的吗

第一步:封装通用版本

第二步:创建请求

第三步:设置请求状态

第四步:发送请求

第五步:渲染效果

第二个问题:

视频中“设置请求状态”

 xhr.onreadystatechange = function(){

            //异步调用成功,响应内容解释完成,可以在客户端调用

            if (xhr.readyState === 4) {  //4表示异步调用成功

                if((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304){

 //获得服务器返回的数据(异步调用成功,就可以获得服务器返回的数据)返回结果是字符串,使用JSON.parse或者eval转换成对象

               data = JSON.parse(xhr.responseText);

              //渲染数据到页面中

               renderDataToDom();

                }

            }

        }

1:加粗代码是什么意思?

2:获得服务器返回数据是 data,是把data作为参数传进function renderDataToDom(){}里面吗?

第三问:

 //第五步:实现局部更新,渲染数据
          function renderDataToDom(){
            var img = data.slider,i,
                len = img.length,str = '',
                banner = document.getElementById('banner'); 
                //方法二:比方法一简单
                //每创建一次a标签,a里面有img,再把字符串拼接一起。
                //每循环一次,把字符串往变量里拼接一次
                for(i=0;i<len;i++){
                    str +='<a href="'+ img[i].linkUrl +'"><img src="'+img[i].picUrl+'"></a>';
                    //console.log(str);                              
                }
                //渲染到banner中 
                banner.innerHTML = str;
          }

1:var中i是什么意思?为什么要写i?

希望老师解答得详细些,先谢谢老师解答,辛苦了。

写回答

1回答

好帮手慕星星

2019-11-21

同学你好,问题解答如下:

1、流程是正确的。

2、加粗代码就是写的渲染函数,当数据请求过来后,调用这个函数即可。

3、传不传参还是要看函数怎么封装的,封装的时候有参数就传入,没有参数就不传。代码中用的是全局变量,并没有传参:

http://img.mukewang.com/climg/5dd6542609f9976910430809.jpg

4、i是自定义的变量(可以更换其它名称),这里当做索引。因为获取的数据是多条,可以输出看一下:

http://img.mukewang.com/climg/5dd65474090ba14004310215.jpg

http://img.mukewang.com/climg/5dd6547f0994ce0607840226.jpg


所以使用for循环,通过索引获取每一条数据与字符串进行拼接。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0
hq_慕移动3101913
h 谢谢老师。答得很清楚,问题已懂。
h019-11-21
共1条回复

0 学习 · 14456 问题

查看课程