w3c html5 ajax,Ajax教程学习笔记(W3CSchool)

第一章: 基础

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

0880117cc44d

方法介绍

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

0880117cc44d

setRequestHeader方法

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

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

2.3.1 服务器响应

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

0880117cc44d

属性描述

例子:(获取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

0880117cc44d

2.4 XML readState(AJAX - onreadystatechange 事件)

0880117cc44d

代码:

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 ?

0880117cc44d

点击结果

第三章 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;

}

}

}

0880117cc44d

这里还有好多需要优化的地方,这里只是表示下使用的方式……其实这里把创建.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"]);

}

}

0880117cc44d

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

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

0880117cc44d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
about ado ado ajax asp aspnet browsers careers css dhtml dotnetmobile dtd e4x example hosting html html5 htmldom i js media msnet php quality quiz rdf rss schema search semweb site smil soap sql svg tags tcpip tiy vbscript w3c wap web webservices wmlscript wsdl xforms xhtml xlink xml xmldom xpath xquery xsl xslfo 解决CHM打开后提示”地址无效”"已取消到该网页的导航”: (1)在所下载的chm文件上 单击右键-属性-解除锁定-确定 再次打开问题即可解决 (2)二:是因为文件所处的路径名中含有#这样的字符的缘故。<br>因为上次WINDOWS XP2做了UPDATE之后就无法打开chm的帮助文件了....想来想去也无法解决.. <br>今天上来问.. <br>CALLCALL朋友给我提供方法也是无法解决..之后我去了官方查找原因..终于找出问题了!! <br>现在把他分享出来,希望有碰到跟我一样的情况下的朋友可以有所帮助!! <br>症状 <br>安装安全更新 896358 或 890175 后,可能会遇到下列一个或多个症状: • 某些类型的基于 Web 的程序可能无法正常运行。例如,HTML 帮助中的目录可能不再起作用。 <br>• 从远程位置打开 .chm 文件时,某些 HTML 帮助功能可能不起作用。例如,“相关主题”功能可能不起作用。 <br>打开CHM后里面的内容全部不可见...就像我们常见的404错误一样! <br>注意:本文包含以下 Microsoft 知识库文章的补充信息: <br>896358 (http://support.microsoft.com/kb/896358/) MS05-026:HTML 帮助中的漏洞可能允许远程执行代码 <br>890175 (http://support.microsoft.com/kb/890175/) MS05-001:HTML 帮助中的漏洞可能允许代码执行 <br>安装这些安全更新后会出现这些症状是预料之中的。本节为必须对关键业务程序重新启用 HTML 帮助 ActiveX 控件的管理员提供了一些示例。这些替代方法可能会危及计算机,使之更容易遭受上述安全更新所克制的威胁。最安全的做法是不要使用注册表替代方法。如果必须使用替代方法,请尽可能严格地设置注册表值。 <br>因为CHM有存在此上漏洞!!所以更新之后会出现像我那种情况! <br>解决方案: <br>将以下文本粘贴到文本编辑器(如记事本)中。然后用 .reg 文件扩展名保存该文件导入注册表.(注意先备份注册表)。 <br>CODE:[Copy to clipboard]REGEDIT4 <br>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp] <br>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions] <br>"UrlAllowList"="\\\\productmanuals\\helpfiles;http://www.wingtiptoys.com/help/" <br>另外微软自己的网站上也有类似的说明,网址是http://support.microsoft.com/kb/902225/zh-cn <br>它给的解决方法是引用 <br>为最终用户提供的解决方案 <br>警告:如果提示从网站打开或保存 .chm 文件,则仅在需要此文件且信任提供此文件的网站的情况下进行此操作。 <br>在“文件下载”对话框中,单击“保存”,然后选择要保存此 .chm 文件的位置。然后,使用下面的方法之一: <br>方法 1 <br>1. 双击此 .chm 文件。 <br>2. 在“打开文件安全警告”对话框,单击以清除“打开此文件前始终询问”复选框。 <br>3. 单击“打开”。 <br>方法 2 <br>1. 右键单击该 CHM 文件,然后单击“属性”。 <br>2. 单击“取消阻止”。 <br>3. 双击此 .chm 文件以打开此文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值