Ajax快速入门

Ajax快速入门

2015-1-28????早 8:00

1.如何创建XHR对象

答:按标准 new XMLHttpRequest()即可以得到

????考虑低版本IE 可以使用new window.ActiveXObject((‘Microsoft.XMLHTTP‘));

????兼容性创建:

????function createXHR(){

????????var xhr = null;

????????if(window.XMLHttpRequest){

????????????xhr = new XMLHttpRequest();

????????}else if(window.ActiveXObject){

????????????xhr = new ActiveXObject(‘Microsoft.XMLHTTP‘);

????????}

????????return xhr;

}

?

2.如何利用XHR来发送请求

答:分析HTTP协议,要请求需要明确一下几个因素:

????(1).用什么方法请求

????????GET, POST, PUT, DELETE, HEAD

????(2).请求哪个资源?(url)

????(3).同步方式:同步/异步?

????????true:异步 false:同步

????????同步:程序顺序执行,返回值存储到xhr.responseText中

????????异步:html不用等待php返回,直接向下执行

?

?

单向投票代码:

????script代码:

function vote(){

????????//1.制造XHR

????????var xhr = createXHR();

????????//2.打开连接

????????xhr.open(‘GET‘,‘./vote.php‘,true); //true:异步 false:同步

????????//3.发送请求

????????xhr.send(null);

????????//alert("ok");

????????//绑定状态变化的回调函数

????????xhr.onreadystatechange = function(){

????????????var pg = document.getElementById(‘progress‘);

if(this.readyState == 4 && this.responseText == 1)

????????????????alert("投票成功了")????????

pg.innerHTML = pg.innerHTML +‘状态现在变成‘ +this.readyState;

????????}

?

}????

html代码:

<div>

????<p><img src="a.png"/></p>

????<p><input type="button" value="投票方法1" onclick="vote();"/></p>

????<div id="progress"></div>

?

</div>

vote.php中代码:

????<?php

????????//此处 sleep(2); //观察同步和异步的效果

$cnt = file_get_contents(‘./vote.txt‘);

$cnt += 1;

file_put_contents(‘./vote.txt‘,$cnt);

?>

?

3.如何获取请求的返回数据

答:XHR对象本身有一个属性:responseText 代表返回值

????xhr.open(‘GET‘,‘./02-vote.php‘,false);

alert(xhr.responseText);

?

4.如果使用异步,程序不等待响应而继续向下执行,如何知道之前的请求已经完成

答:XHR对象在请求与响应过程中,状态会不断发生变化(0-4)逐步变化

????我们可以绑定一个函数,监听状态的变化,只要状态变化就触发某个函数

????//绑定状态变化的回调函数

????xhr.onreadystatechange = function(){

????????var pg = document.getElementById(‘progress‘);

if(this.readyState == 4 && this.responseText == 1)

????????????alert("投票成功了")????????

pg.innerHTML = pg.innerHTML +‘状态现在变成‘ +this.readyState;

????}

????

????XHR 的readyState当变到4时,就意味着请求完毕。

?

?

时间: 2024-11-06 17:29:34

Ajax快速入门的相关文章

JavaWeb之Ajax快速入门(十九)

AJAX 1. AJAX简介 1. AJax是什么 允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做AJax,AJax不是新的编程语言是多种技术的结合形成一门新技术 AJAX = DHTML (HTML.CSS.JavaScript ) + XMLHttpRequest对象 2. AJax的特点 不适用于任何应用场景 导致逻辑处理混乱 Ajax是实现B\S模式下的异步交互 在实现同样的功能时,Ajax的性能更好 3. AJax的优点 1). 传统web交互模型,浏览器直接将请求发送给服务器

ajax 快速入门

ajax作用:ajax 是在不重新加载整个页面的情况下与服务器交换数据并更新部分网页的技术.(实现浏览器与服务器之间的数据交互,实现页面的无刷新请求服务器,提高用户体验) 基本使用: 1.创建ajax对象: new XMLHttpRequest() //普通浏览器使用,ie浏览器有特殊 2.创建事件函数(处理服务器返回的结果): onreadystatechange readyState  ajax对象状态:0:请求未初始化 1:服务器连接已建立 2:请求已接收 3:请求处理中 4请求已完成,且

[Mozilla]AJAX快速入门

什么是AJAX? AJAX的意思就是异步的JavaScript和XML.简而言之,它是使用XMLHttpRequest对象与服务器端通信的脚本语言.它可以发送及接收各种格式的信息,包括JSON.XML.HTML和文本文件.AJAX最为吸引人的就是它的"异步"特性,这意味着AJAX可以无需刷新页面而与服务器端进行通信.允许你根据用户事件来更新部分页面内容. 可以考虑的两个特性: 向服务器端发送请求,而不用重新加载页面. 从服务器端接收数据并处理. 第一步:如何发送一个HTTP请求 需要通

Spring MVC 教程,快速入门,深入分析

资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客:http://elf8848.iteye.com 目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如j

Spring_MVC_教程_快速入门_深入分析

Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客:http://elf8848.iteye.com 目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明

AngularJS快速入门指南14:数据验证

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic

JAVAWEB开发之Struts2详解(一)——Struts2框架介绍与快速入门、流程分析与工具配置以及Struts2的配置以及Action和Result的详细使用

Struts2框架介绍 三大框架:是企业主流JavaEE开发的一套架构.Struts2 + Spring + Hibernate 什么是框架?为什么要学习框架? 框架是实现部分功能的代码(半成品),使用框架简化企业级软件开发. Struts2与MVC? Struts是一款优秀的MVC框架 MVC:是一种思想,是一种模式,将软件分为Model模型.View视图.Controller控制器 JAVAEE软件三层架构:web层(表现层).业务逻辑层.数据持久层(Sun提供javaEE开发规范) Jav

AngularJS快速入门指南17:Includes

使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML imports功能,以支持在HTML中包含其它的HTML文件. <link rel="import" href="/path/navigation.html"> 在服务端包含文件 大部分的web服务器都支持服务端包含文件(Server Side Includes).通过

AngularJS快速入门指南16:Bootstrap

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic