web 11
Obtaining the JSON:
1.首先,我们将把要检索的JSON的URL存储在变量中。
2.要创建请求,我们需要使用new关键字从XMLHttpRequest构造函数创建一个新的请求对象实例。
3.现在我们需要使用open ( )方法(XMLHttpRequest.open():初始化请求。此方法将从JavaScript代码中使用;要从本机代码初始化请求,请改用OpenRequest ( )。)打开一个新的请求。添加以下行:
这至少需要两个参数——还有其他可选参数。对于这个简单的例子,我们只需要两个强制性的例子:
发出网络请求时使用的HTTP方法。在这种情况下,GET很好,因为我们只是检索一些简单的数据。
向其发出请求的URL——这是我们之前存储的JSON文件的URL。
4 .接下来,添加以下两行——在这里,我们将responsetType设置为JSON,这样XHR就知道服务器将返回JSON,并且这应该在幕后转换为JavaScript对象。
5 .本节的最后一部分涉及等待服务器返回响应,然后处理它。
代码如下:
<script>
2 var header = document.querySelector('header');
3 var section = document.querySelector('section');
4 var requestURL = 'https://raw.githubusercontent.com/Bulalalala-Ly/package/master/yinshi-json/1.json';
5 var request = new XMLHttpRequest();
6 request.open('GET', requestURL);
7 request.responseType = 'text';
8 request.send();
9 request.onload = function() {
10 var ownText = request.response;
11 var own = JSON.parse(ownText);
12 populateHeader(own);
13 showHeroes(own);
14 }
15 function populateHeader(jsonObj) {
16 var myH1 = document.createElement('h1');
17 myH1.textContent = jsonObj['Name'];
18 header.appendChild(myH1);
19 var myPara = document.createElement('p');
20 myPara.textContent = '导演 : ' + jsonObj['Director'] + ' / 首播时间: ' + jsonObj['formed'];
21 header.appendChild(myPara);
22 }
23 function showHeroes(jsonObj) {
24 var heroes = jsonObj['members'];
25
26 for (var i = 0; i < heroes.length; i++) {
27 var myArticle = document.createElement('article');
28 var myH2 = document.createElement('h2');
29 var myPara1 = document.createElement('p');
30 var myPara2 = document.createElement('p');
31 var myPara3 = document.createElement('p');
32 var myList = document.createElement('ul');
33
34 myH2.textContent = heroes[i].name;
35 myPara1.textContent = '简介 : ' + heroes[i].introduction;
36 myPara2.textContent = '出生日期: ' + heroes[i].birth;
37 myPara3.textContent = '代表作品 :';
38
39 var superPowers = heroes[i].masterworks;
40 for (var j = 0; j < superPowers.length; j++) {
41 var listItem = document.createElement('li');
42 listItem.textContent = superPowers[j];
43 myList.appendChild(listItem);
44 }
45
46 myArticle.appendChild(myH2);
47 myArticle.appendChild(myPara1);
48 myArticle.appendChild(myPara2);
49 myArticle.appendChild(myPara3);
50 myArticle.appendChild(myList);
51
52 section.appendChild(myArticle);
53 }
54 }
55 </script>

a JSON file base on own website:
代码如下:
{
"Name" : "剧名",
"Director" : "导演名",
"formed" : 播出年份,
"introduction" : "简介",
"active" : true,
"members" : [
{
"name" : "演员名",
"birth" : "出生年月",
"introduction" : "个人简介",
"masterworks" : [
"“代表作品名”",
"“代表作品名”",
"“代表作品名”"
]
},
{
"name" : "演员名",
"birth" : "出生年月",
"introduction" : "个人简介",
"masterworks" : [
"“代表作品名”",
"“代表作品名”",
"“代表作品名”"
]
},
{
"name" : "演员名",
"birth" : "出生年月",
"introduction" : "个人简介",
"masterworks" : [
"“代表作品名”",
"“代表作品名”",
"“代表作品名”"
]
}
]
}
web 11的更多相关文章
- D3_book 11.2 stack
<!-- book :interactive data visualization for the web 11.2 stack 一个堆叠图的例子 --> <!DOCTYPE htm ...
- LinuxMysql命令操作数据库
键入命令mysql -uroot -p密码查看所有表:mysql> show databases;进入表use multidomain_db;删除表:DROP table colour 执行sq ...
- 前端工程筹建NodeJs+gulp+bower
1.安装nodejs nodejs 官网下载安装文件 安装完成之后,在命令窗口执行,(显示nodejs版本) 和(显示npm版本)可以使用这两个命令查看是否安装成功: node -v npm -v 2 ...
- cache应用(asp.net 2.0 SQL数据缓存依赖 [SqlCacheDependency ] )
Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存 1.首先在sqlserver2005 中创建一个test的数据库. 在SQL Ser ...
- 整合spring roo,maven,mybatis,spring-flex,blazeds,mysql
1. 下载spring roo,设置环境变量ROO_HOME,和path,classpath. 使用CMD命令行找到工作区间,新建工程目录转到工程目录:mkdir ten-minutes $ ...
- 简单bat语法
一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on off}] [message] ...
- 前端工程搭建NodeJs+gulp+bower
需要node.npm的事先安装!! 1.nodejs安装程序会在环境变量中添加两个变量: 系统环境变量中:path 增加C:\Program Files\nodejs\ 因为在该目下存在node.ex ...
- [置顶] ANT build.xml文件详解
Ant的优点 跨平台性.Ant是用Java语言编写的,所示具有很好的跨平台性. 操作简单.Ant是由一个内置任务和可选任务组成的. Ant运行时需要一个XML文件(构建文件). Ant通过调用targ ...
- Asp.Net Core WebApi学习笔记(四)-- Middleware
Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Mid ...
随机推荐
- mysql 1194 – Table ‘tbl_video_info’ is marked as crashed and should be repaired 解决方法
执行REPAIR TABLE `tbl_vedio_info`; 然后就可以了
- codeforces 1151 D
SM的水题. codeforces 1151D 当时写对了,因为第一题卡了,,然后这题就没细想,原来是没开longlong. 题意:n个位置每个位置有a和b,让sum=(每个点的左面的点的数量*a+右 ...
- SkyReach 团队团队展示
班级:软件工程1916|W 作业:团队作业第一次-团队展示 团队名称:SkyReach 目标:展示团队风采,磨合团队 队员姓名与学号 队员学号 队员姓名 个人博客地址 备注 221600107 陈某某 ...
- java学习笔记03-基本语法
编写java程序时,应注意以下点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个 ...
- Java 入门
Java 入门 入门书籍 Java相关书籍: <Java编程思想> 算是比较经典和全面的书籍; 10章可以快速过一下,都是基本语法,不需要花太多时间. 中后段的一些章节,类型信息.泛型.容 ...
- XPath Helper使用教程
下载地址 百度网盘下载密码:yuuv下载完成后选择保留 安装 在导航栏中输入chrome://extensions:将.crx文件拖拽到扩展程序页面中,勾选已启用按钮. 使用 重启浏览器,快捷键CTR ...
- eclipse,代码中有错误,项目或者java类中却不显示红叉
修改eclipse代码提示级别1.单个项目修改项目上右键-->properties-->java compiler-->building-->enable project sp ...
- ios设置音乐audio自动播放
因为audio标签的自动播放:autoplay.在ios系统中不能自动播放,此时需要设置,在进入页面自动播放音乐. 第一步,先引入js微信 <script src="js/jweixi ...
- C# 关于X86/X64/AnyCpu 的关系
电脑硬件CPU可以分为x86与x64, x86的机器只能安装32位的操作系统,如XP, WIN7_86, x64的机器既可以安装32位的系统,又可以安装64位的系统,只是在x64的机器上安装32位的系 ...
- 打造vim IDE
pathogen.vim:vim插件目录自动识别.加载(注意:能用pathogen.vim安装插件,就不要用Vundle.因为Vundle下载插件速度非常慢.) https://github.com/ ...