AJAX是什么
AJAX(Async JavaScript And XML)是一种技术总结
AJAX的全部内容:用JS发请求和收响应
--资料来源于饥人谷
AJAX的背景
- AJAX是浏览器上的功能
浏览器可以发请求,收响应
浏览器在window上加了一个XMLHttpRequest函数
用这个构造函数(类)可以构造出一个对象
其实和window.Object差不多,Object用来创建普通对象,XMLHttpRequest用来创建XMLRquest对象的。
JS通过它实现发请求,收响应
- 准备一个服务器
使用server.js作为我们的服务器
下载或复制代码即可用node server.js 8888启动
可以安装yarn global add node-dev用node-dev开发node-dev server.js 8888改动代码保存后会自动重启
添加index.html / main.js两个路由
熟悉AJAX四个步骤
挑战1·加载 CSS
以前我们用、今天请用AJAX加载 CSS
四个步骤
-
创建HttpRequest对象(全称是XMLHttpRequest)
-
调用对象的open方法
-
监听对象的onload & onerror 事件
—―专业前端会改用onreadystatechange事件
——在事件处理函数里操作CSS文件内容
- 调用对象的send方法((发送请求)
--具体代码请打开MDN 用 CRM大法搞定
挑战2·加载JS
以前我们用
今天请用AJAX加载JS
- 四个步骤
-
创建HttpRequest对象(全 称是XMLHttpRequest)
-
调用对象的open方法
-
监听对象的onreadystatechange事件 --在事件处理函数里操作JS文件内容
-
调用对象的send方法(发送请求) --具体代码请打开 MDN用CRM 大法搞定
挑战3·加载HTML
以前我们不会加载3.html
现在可以做到轻量化的请求HTML
- 四个步骤
-
创建HttpRequest对象(全 称是XMLHttpRequest)
-
调用对象的open方法
-
监听对象的onreadystatechange事件
--在事件处理函数里操作HTML文件内容
- 调用对象的send方法(发送请求)
--具体代码请打开MDN用CRM大法搞定
挑战·加载XML
以前我们不会加载4.xml
以前没有JSON,用的xml传递数据
- 四个步骤
-
创建HttpRequest对象(全 称是XMLHttpRequest)
-
调用对象的open方法
-
监听对象的onreadystatechange事件
--在事件处理函数里操作responseXML
- 调用对象的send方法(发送请求)
--具体代码请打开MDN用CRM大法搞定
总结
- HTTP是个框,什么都能往里装
可以装HTML、CSS、 JS、 XML
记得设置正确的Content-Type,这是好习惯
只要你知道怎么解析这些内容,就可以使用这些内容
- 解析方法
得到CSS之后生成style标签
得到JS之后生成script标签
得到HTML之后使用innerHTML和DOM API
得到XML之后使用responseXML和DOM API
不同类型的数据有不同类型的解析办法
新的挑战 5·加载JSON---什么是JSON
JSON是一门语言,跟HTML、CSS、XML、JS一样,是一门独立的语言。英文:JavaScript Object Notation。JS对象标记语言。
JSON不是编程语言,是标记语言。跟HTML、XML、Markdown 一样,用来展示数据
- JSON很简单
一页纸就说明了JSON的所有语法
你会看铁轨图就会用JSON
- 支持的数据类型
-
string-只支持双引号,不支持单引号和无引号
-
number-支持科学记数法
-
bool - true和false
-
null-没有undefined
-
object-object里也只能是这几种
-
array
就这六种,注意跟JS的七种数据类型区别开来。不支持函数,不支持变量(所以也不支持引用)
JSON借(c)鉴(x)JS
挑战5·加载JSON
我们需要加载5.json
- 四个步骤
-
创建HttpRequest对象(全称是XMLHttpRequest)
-
调用对象的open方法
-
监听对象的onreadystatechange事件
——在事件处理函数里使用JSON.parse
- 调用对象的send方法(发送请求)
——具体代码请打开MDN 用 CRM大法搞定
window.JSON
- JSON.parse
将符合JSON语法的字符串转换成JS对应类型的数据 JSON字符串=>JS数据
由于JSON只有六种类型,所以转成的数据也只有6种,如果不符合JSON语法,则直接抛出一个Error对象,一半用try catch 捕获错误
- JSON.stringify
是JSON.parse的逆运算
JS数据=> JSON字符串
由于JS的数据类型比JSON多,所以不一定能成功
如果失败,就抛出一个Error对象