第一章: 基础

1.1 是什么?

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

1.2 简介

AJAX = 异步 JavaScript 和 XML。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

1.3 实例

w3c上并没有给出实例……

第二章: Ajax XHR

2.1 XHR 创建对象(AJAX - 创建 XMLHttpRequest 对象

)

XMLHttpRequest 是 AJAX 的基础。

2.1.1 创建 XMLHttpRequest 对象的语法:

variable = new XMLHttpRequest();

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

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

2.2.3 为了应对所有的现代浏览器,包括 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");

}

2.2 XHR 请求(AJAX - 向服务器发送请求)

XMLHttpRequest 对象用于和服务器交换数据。

2.2.2 向服务器发送请求

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

方法介绍

2.2.3 POST OR GET?

GET 还是 POST?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)

向服务器发送大量数据(POST 没有数据量限制)

发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

2.2.4 为了避免得到缓存结果,向url添加一个唯一id

xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);

xmlhttp.send();

2.2.5 如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。

xmlhttp.open("POST","ajax_test.asp",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send("fname=Bill&lname=Gates");

setRequestHeader方法

** 请记住,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。**

2.3 XHR 响应(AJAX - 服务器响应)

2.3.1 服务器响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

属性描述

例子:(获取xml中的带title标签的文字)

Test01.htm

function loadXMLDoc() {

var xmlhttp;

var txt, x, i;

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

}

else {// code for IE6, IE5

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

}

xmlhttp.onreadystatechange = function () {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

xmlDoc = xmlhttp.responseXML;

txt = "";

x = xmlDoc.getElementsByTagName("title");

for (i = 0; i < x.length; i++) {

txt = txt + x[i].childNodes[0].nodeValue + "
";

}

document.getElementById("myDiv").innerHTML = txt;

}

}

xmlhttp.open("GET", "books.xml", true);

xmlhttp.send();

}

My Book Collection:

获得我的图书收藏列表

books.xml(里面有部分测试代码)

中华手记

一个字,好!

2018-12-12三字经

一个字,好!

2018-12-12

2.4 XML readState(AJAX - onreadystatechange 事件)

代码:

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

}

}

例子:(获取txt里的文字)

Test02Txt.htm

function loadXMLDoc() {

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");

}

xmlhttp.onreadystatechange = function () {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById("myDiv").innerHTML = xmlhttp.responseText;

}

}

xmlhttp.open("GET", "Test01.txt", true);

xmlhttp.send();

}

Let AJAX change this text

通过 AJAX 改变内容

Test01.txt

hello,welcome to my world!

what do you want ?

点击结果

第三章 Ajax 高级

3.1 Ajax asp/php

例子:

Test03.asp

function showHint(str) {

var xmlhttp;

if (str.length == 0) {

document.getElementById("txtHint").innerHTML = "";

return;

}

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

}

else {// code for IE6, IE5

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

}

xmlhttp.onreadystatechange = function () {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById("txtHint").innerHTML = xmlhttp.responseText;

}

}

xmlhttp.open("GET", "test03.aspx?q=" + str, true);

xmlhttp.send();

}

请在下面的输入框中键入字母(A - Z):

姓氏:

建议:

test03.asp

//这里是空的

test03.aspx.cs

protected void Page_Load(object sender, EventArgs e)

{

Response.ContentType = "text/plain";

string q = Request["q"];

string [] a = new string[5];

a[0] = "Anna";

a[1] = "Bnna";

a[2] = "cnna";

a[3] = "dnna";

a[4] = "enna";

if (q.Length > 0)

{

for (int i = 0; i < a.Length; i++)

{

if (a[i].Contains(q))protected void Page_Load(object sender, EventArgs e)

{

Response.ContentType = "text/plain";

string q = Request["q"];

string[] a = new string[5];

a[0] = "Anna";

a[1] = "Bnna";

a[2] = "cnna";

a[3] = "dnna";

a[4] = "enna";

for (int i = 0; i < a.Length; i++)

{

if (a[i].Contains(q))

{

Response.Write(a[i] + " ");

break;

}

}

}

这里还有好多需要优化的地方,这里只是表示下使用的方式……其实这里把创建.aspx文件改成一般处理程序可能会更好一些……

3.2 Ajax 数据库(AJAX 数据库实例)

例子:

Test04SQL.htm

function showCustomer(str) {

var xmlhttp;

if (str == "") {

document.getElementById("txtHint").innerHTML = "";

return;

}

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

}

else {// code for IE6, IE5

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

}

xmlhttp.onreadystatechange = function () {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById("txtHint").innerHTML = xmlhttp.responseText;

}

}

xmlhttp.open("GET", "test04getcustomer.aspx?q=" + str, true);

xmlhttp.send();

}

请选择章节:

请选择

第二章

章节显示处...

test04sql.cs

protected void Page_Load(object sender, EventArgs e)

{

Response.ContentType = "text/plain";

string q = Request["q"];

string sql = "select * from TestEssay";

DataSet ds = DbHelperSQL.Query(sql);

for (int i = 0; i < ds.Tables[0].Rows.Count;i++ )

{

Response.Write(ds.Tables[0].Rows[i]["Content"]);

}

}

此处只是随便从数据库读取一些信息出来,只是介绍下操作数据库的方式,此实例并没有什么实际用途。

3.3 AJAX XML 实例

可参照第二章,响应……

第四章: Ajax 实例

Test05Ex.htm

var xmlhttp;

function loadXMLDoc(url) {

xmlhttp = null;

if (window.XMLHttpRequest) {// code for IE7, Firefox, Mozilla, etc.

xmlhttp = new XMLHttpRequest();

}

else if (window.ActiveXObject) {// code for IE5, IE6

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

}

if (xmlhttp != null) {

xmlhttp.onreadystatechange = onResponse;

xmlhttp.open("GET", url, true);

xmlhttp.send(null);

}

else {

alert("Your browser does not support XMLHTTP.");

}

}

function onResponse() {

if (xmlhttp.readyState != 4) return;

if (xmlhttp.status != 200) {

alert("Problem retrieving XML data");

return;

}

txt = "

x = xmlhttp.responseXML.documentElement.getElementsByTagName("CD");

for (i = 0; i < x.length; i++) {

txt = txt + "

";

xx = x[i].getElementsByTagName("TITLE");

{

try {

txt = txt + "

" + xx[0].firstChild.nodeValue + "";

}

catch (er) {

txt = txt + "

";

}

}

xx = x[i].getElementsByTagName("ARTIST");

{

try {

txt = txt + "

" + xx[0].firstChild.nodeValue + "";

}

catch (er) {

txt = txt + "

";

}

}

txt = txt + "

";

}

txt = txt + "

";

document.getElementById('copy').innerHTML = txt;

}

Get CD info

test05.xml

hhhh

aaa

hhhh

aaa

hhhh

aaa

hhhh

aaa

hhhh

aaa

w3c html5 ajax,Ajax教程学习笔记(W3CSchool)相关推荐

  1. HTML5新特性的学习笔记

    HTML5新特性的学习笔记 HTML 超文本标记语言: HyperText Markup Language 这份学习笔记的主要内容是HTML5的新标签 基于菜鸟教程的个人向学习笔记 菜鸟教程 文章目录 ...

  2. 黑马程序员最新版JavaWeb基础教程-学习笔记

    da@黑马程序员最新版JavaWeb基础教程-学习笔记 day06-HTML&CSS HTML HTML(HyperTest Markup Language):超文本标记语言 是一门语言,所有 ...

  3. linux磁盘符变化autofs,Linux基础教程学习笔记之Autofs自动挂载

    Linux基础教程学习笔记之Autofs自动挂载 Autofs自动挂载: yum -y install autofs vim /etc/auto.master  在文件中添加下面行 /home/gue ...

  4. 网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储

    Linux基础教程学习笔记28--使用Samba访问网络存储 SMB用于Windows和类Linux系统直接的文件共享 安装samba client包: [root@linuxidc~]# yum i ...

  5. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

  6. 无敌python爬虫教程学习笔记(二)

    系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...

  7. 【从零开始的大数据学习】Flink官方教程学习笔记(一)

    Flink官方教程学习笔记 学习资源 基础Scala语法 Scala数据结构专题 声明变量 代码块 函数(function) 方法(methods) Traits (接口) class(类) tupl ...

  8. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  9. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  10. SQL数据库教程-学习笔记2

    SQL数据库教程-学习笔记2 文章目录 SQL数据库教程-学习笔记2 三.DML语言的学习 1.插入语句:insert into 2.修改语句:update 3.删除语句:delete 4.练习题 四 ...

最新文章

  1. video 微信 标签层级过高_基于大数据的用户标签体系建设思路和应用
  2. 腾讯云产业生态战略再升级,“4个100”与合作伙伴助力中小企业转型升级
  3. VS2012下基于Glut OpenGL glScissor示例程序:
  4. 第三方类AFNetworking
  5. 今日头条 Go 建千亿级微服务的实践
  6. 【深度学习】Ivy 开源框架,深度学习大一统时代到来?
  7. 100的阶乘c语言代码,求10000的阶乘(c语言代码实现)
  8. qt4.7 mysql_详解Qt 4.7编译和访问Mysql驱动
  9. 数据库调优都涉及哪些方面
  10. java 多态_Java面向对象 —— 多态
  11. java中calendarr,Java学习(16)--System 类/Date 类/ Calendar类
  12. 【转】一个40岁老程序员的前端学习之路|2021 年中总结
  13. 可变分区存储管理实验报告总结_可变分区存储管理方式的内存分配和回收实验报告...
  14. qgraphicsview鼠标移动图片_交互式QGraphicsView(平移/缩放/旋转)-阿里云开发者社区...
  15. 字符多维php递归遍历目录
  16. 字符编码-- Unicode(1991年)
  17. Bugku杂项——旋转跳跃
  18. 各个国家的市场分析(俄罗斯,白俄罗斯)
  19. 100个最热门的国人开发开源软件
  20. TP5微信提现 商家转账到零钱(复制皆可用)

热门文章

  1. 贵州中小学教师计算机考试题目,2019贵州教师招聘考试习题及答案:小学数学...
  2. anki计算机知识,「背书 刷题神器」 Anki 是应对考试的强力效率 buff
  3. SAP-GR/IR的理解
  4. win10卸载电脑管家就蓝屏_Win10电脑蓝屏原因排查及解决方案
  5. 【电商】电商后台---FMS财务管理系统
  6. 2010-2020年和讯网分省份社会责任数据
  7. linux 命令断网,linux 断网 扫描基本命令(示例代码)
  8. STM32之SD卡【写的太好了 转载 】
  9. vscode代码拼写检查插件的使用(超详细)
  10. 小王的架构师之旅路----面试