版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/huangyibin628/article/details/28281003

1、AJAX(Asynchronous JavaScript and XML)即,异步JavaScript和XML 
   

2、同步/异步差别
同步
①每次进行整个页面的刷新
②同步的链接在同一时间仅仅能有一个,它的运行会阻止兴许JS的运行,JS必须在同步链接运行完毕后才干继续运行。
异步
①每次仅仅刷新须要更新的部分
②能够发生多个。同一时候。不会阻止JS运行
3、异步载入/AJAX的特点及优势
① 局部刷新。按需载入。仅仅有页面中真正改变的部分得到更新。
② 能够减少server的数据流量。页面在更新,用户能够继续工作
③ 浏览器能够从server端同一时候请求多项内容
④ 每次传递的流量相对是比較小的,浏览器请求返回速度快一些
4、不能整个页面所有使用AJAX进行数据申请的原因?
由于不利于SEO,标签内部都是空的,SEO抓取不到,对于页面中比較重要的信息,通常使用静态
5、AJAX几个基本API
①new XMLHttpRequest() (IE5 和 IE6 使用 ActiveXObject)。  
②open()  
③send()   
④onload()  
⑤responseText()

老版本号的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:

variable=new ActiveXObject("Microsoft.XMLHTTP");

为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。假设支持,则创建 XMLHttpRequest 对象。假设不支持,则创建 ActiveXObject :

var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
open(method,url,asyn) 确定即将链接的网址及方式
參数
method:String 採用post/get形式请求
url:String, 要链接的网址
asyn:Boolean。是否发起异步请求
send(data)
參数 
❤ 6、异步载入的几个基本步骤
<script>
     var url = '2.html';
     // 创建请求
     var xhr = new XMLHttpRequest();                                          
     // 确定请求的方式以及请求的地址
     xhr.open('post',url,true);
     // 发生请求
     xhr.send(null);
     // server端载入完毕
     xhr.onload = function() { document.writeln(xhr.responseText); }
</script>
7、AJAX仅仅能处理文本类的文件。对于图片不能处理
8、innerHTMl中script代码是不会被运行的,AJAX返回的是字符串
eval的作用:让字符串当做JS去运行,假设遇到innerHTML中JS不运行的问题,须要使用eval方法,可是,性能不好,同一时候在JS的严格模式和非严格模式下存在不同,在项目和代码中尽量少出现.
xhr.onload = function() {
          con.innerHTML=xhr.responseText;
          /*con下的script*/
          var cons = con.getElementsByTagName('script');
          for (var i = 0; i < cons.length; i++) {
               eval(cons[i].innerHTML);
          };
}
/*
 *  a、直接在对象data后面加点。

再加属性就可以;
 *  b、採用[ ]的方式訪问,有点相似数组。只是是通过key去索引;
 */
 var json = '{"a":"HTML5自由者", "b":"黄艺斌"}';   
 var data = eval("("+json+")");   
 alert(data.a);     // 弹出: HTML5自由者
 alert(data['b']);  // 弹出: 黄艺斌

假设每一个tab切换都用一个文本格式来创建则要求创建非常多,这时候须要用到数据格式JSON或者XML
9、❤数据格式
JSON 与 XML都是常见的数据格式
JSON(JavaScript Object Notation)轻量级数据格式。直译为JavaScript对象符号
XML是一种可扩展标记语言。与HTML都是标记语言
10、❤ JSON优劣势:
JSON的优势
JSON的劣势
① 轻量级。体积小。节省流量,提高载入速度
② 解析成原生JS对象,解析比XML更快
③ 查找数据无需查找标签,更快
在古老的浏览器如IE7-中不支持原生JSON解析,
须要引入第三方库的支持

JSON/XML辨析:
可读性:两者都有非常长的可读性,XML数据严格遵循XML DOM模型规范,JSON严格遵循JS语言语法
可扩展性:XML数据通过自己定义标签,能够设计更复杂的数据嵌套结构,而JSON能够通过数组和对象的无穷组合也能够模拟随意XML数据结构。
编码难度:XML有丰富的编码工具(如Dom4j、jDom等),JSON也有json.org提供的工具,可是JSON编码明显比XMLeasy,即使不借助工具也能够手写JSON代码,可是要手写XML文档就非常困难。
解码难度:XML数据解析需考虑结构层次及节点关系,解析难度非常大,JSON数据不存在解析难度
文件大小:相同的数据。XML文件大小大于JSON文件体积大小
11、JSON常见形式:对象、数组
JSON数组的写法:
数组是一个有序的值的集合
JSON对象的写法:
对象是一个无序的"名/值"对的集合

12、JSON数据的内容
JSON中数据内容通过值来表示:字符串、数值、逻辑值、null、对象、数组

* 字符串必须使用双引號括起来
* 数值能够直接引用,不须要加入引號
* 逻辑值仅包括true和false,直接引用,不须要加入引號
* 在JSON数据中,分隔符(空格,制表符和换行符)是不被解析的,因此可在任何位置添加空白

13、JSON数据类型转换
JSON.parse(string);  将json字符串string转换为js对象
JSON.stringify(obj); 将JS对象转换为JSON字符串

转载请注明出处:CSDN博客--HTML5自由者  http://blog.csdn.net/html5_

AJAX基础知识点学习的更多相关文章

  1. java基础知识点学习

    基础学习总结 1.锁sync/lock都有哪些方法,底层实现 synchronized ['sɪŋkrənaɪzd] 2.线程池的参数.线程池执行的流程,当到达线程池到达最大数,队列也满了,出现的异常 ...

  2. AJAX基础知识点学�

    1.AJAX(Asynchronous JavaScript and XML)即,异步JavaScript和XML 2.同步/异步差别 同步: ①每次进行整个页面的刷新 ②同步的链接在同一时间仅仅能有 ...

  3. Node基础知识点--学习笔记(一)

    一:建立http服务器: 在D盘建立一个文件夹node,放入app.js,代码如下: var http = require('http'); http.createServer(function(re ...

  4. JavaScript基础知识点学习记录

    一.简介: JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如相应用户的各种操作. J ...

  5. AJAX基础知识点——思维导图

    如图 思维导图图片链接 http://www.edrawsoft.cn/viewer/public/s/4db2e712070147 有道云笔记链接 http://note.youdao.com/no ...

  6. android开发学习---基础知识学习、如何导入已有项目和开发一个电话拨号器

    一.基础知识点学习  1.Android体系结构 如图所示,android 架构分为三层: (1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Fl ...

  7. Java后端高频知识点学习笔记1---Java基础

    Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...

  8. 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...

  9. 【Java EE 学习 31】【JavaScript基础增强】【Ajax基础】【Json基础】

    一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使 ...

随机推荐

  1. 将不确定变为确定~老赵写的CodeTimer是代码性能测试的利器

    首先,非常感谢赵老大的CodeTimer,它让我们更好的了解到代码执行的性能,从而可以让我们从性能的角度来考虑问题,有些东西可能我们认为是这样的,但经理测试并非如何,这正应了我之前的那名话:“机器最能 ...

  2. 关于 IdentityServer 部署到生产环境相关问题踩坑记录

    Idsr 定义了几种模式适用于不同的场景: // // 摘要: // OpenID Connect flows. public enum Flows { // // 摘要: // authorizat ...

  3. Mysql 存储过程实例详解

    存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,存储和和函数的区别在于函数必须有返回值,而存储过程没有,存储过程的参数可以使用IN.OUT.INOUT类型,而函数的参数只能是IN类 ...

  4. 搜藏一个php文件上传类

    <?php /** * 上传文件类 * @param _path : 服务器文件存放路径 * @param _allowType : 允许上传的文件类型和所对应的MIME * @param _f ...

  5. 利用批处理文件删除系统托盘上的图标(适用于Windows各个版本)

    对于我这种强迫症患者来说,如果我已经删除了一些软件,但是系统托盘里面还有它,我会很难受.所以,没办法,必须想办法把它清除掉,还自己一片安宁!!!不知各位是否遇到过和我一样的问题,下面贴一段批处理文件的 ...

  6. 创建一个背景为蓝色的pygame窗口

    import sys import pygame def creat_screen(): #初始化pygame pygame.init() #设置窗口大小并保存在screen对象中 screen = ...

  7. 【工具相关】Web-Sublime Text2-安装插件HTMLPrettify

    一,打开Sublime Text2---->Preferences--->Browse Packages.--->查看Sublime Text2已经有的插件.如图所示. 二,在网上下 ...

  8. python之管道, 事件, 信号量, 进程池

    管道:双向通信 2个进程之间相互通信 from multiprocessing import Process, Pipe def f1(conn): from_zjc_msg = conn.recv( ...

  9. 两年AI研究经验(教训)总结,进来看看吧!

    https://www.jianshu.com/p/2149c9fee166 摘要: 本文以过来人的身份将自身2年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助. 人工智能 ...

  10. TCP协议学习总结

    1.TCP协议通过三次握手建连接,四次挥手断连接. 2.TCP的定时器都有哪些? 做什么用途? 3.TCP的慢启动是什么意思? 4.TCP的快速重传是什么意思?