老师,请问整个的流程是这样的吗,谢谢
来源: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回答
同学你好,问题解答如下:
1、流程是正确的。
2、加粗代码就是写的渲染函数,当数据请求过来后,调用这个函数即可。
3、传不传参还是要看函数怎么封装的,封装的时候有参数就传入,没有参数就不传。代码中用的是全局变量,并没有传参:

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


所以使用for循环,通过索引获取每一条数据与字符串进行拼接。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题