初步认识ajax(个人整理)
通过使用ajax可以实现页面的部分动态化
ajax可以发送一个请求去服务端,而服务端则发送回一小段数据给客户端,这样就可以避免加载整个页面,因为很多时候页面只需要刷新某一部分的数据,而其他大部分体就不需要更新
ajax我用过的经验有两种,一种是js的ajax方法,一个是经过jQurey封装好的ajax方法,我想没有第三种吧。。
js的ajax使用流程:创建XMLHttpRequest对象 -> 对象向服务器进行请求 -> 服务器进行响应 ->客户端判断服务器的响应是否就绪
第一步:创建XMLHttpRequest对象
HXR = new XMLHttpRequest();
然而上面并不适用于IE5 和 IE6,所以对于这种浏览器需要用ActiveX 对象
HXR = new ActiveXObject("Microsoft.XMLHTTP");
因此我们在写第一步的时候可以先进行一下判断,判断是什么浏览,然后再进行对象的新建
var HXR;
if(window.XMLHttpRequest){
HXR = new XMLHttpRequest();//IE7或以上的主流浏览器
}
else{
HXR = new ActiveXObject("Microsoft.XMLHTTP");//IE5或6
}
第二步:发出请求
我们可以使用对象的open()和send()方法。
open(method,url,async)是规定请求类型(get,post),服务器的url,同步或者异步。
send(string)方法是放送请求,里面的参数只有方法是post才用到,因为get方法的请求参数已经在url里面了
| 方法 | 描述 |
|---|---|
| open(method,url,async) |
规定请求的类型、URL 以及是否异步处理请求。
|
| send(string) |
将请求发送到服务器。
|
get请求使用例子:
HXR.open('GET','server.php?name=sbb&id=1',true);
HXR.send();
POST请求使用例子,如果需要添加请求信息,则要加入http表头
HXR.open('POST','server.php',true);
HXR.setRequestHeader("Content-type","application/x-www-form-urlencoded");
HXR.send("name=sbb&id=1");
第三步:服务器进行相应
这个则需要自己进行编写,可以对传过来的数据进行判断而输出对应的数据,这里就不详细写了,写个简单例子
$data = $_REQUEST['name'];
echo $data;
第四步:判断响应
请求发送到服务器之后,XMLHttpRequest 对象里的readyState 属性的改变的触发对象的onreadystatechange 事件
XMLHttpRequest 有三个重要属性readyState,status,onreadystatechange,
个人理解readyState是针对网页和服务端的连接,而进行的状态判断
status是针对服务端的判断,其中返回的数字是HTTP状态码,
当readyState改变就会触发onreadystatechange()事件
| 属性 | 描述 |
|---|---|
| onreadystatechange | 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 |
| readyState |
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
|
| status |
200: "OK" 404: 未找到页面 |
综上所述,如果onreadystatechange一触发,就会对两个状态码进行判断,如果符合,则表明响应就绪
HXR.onreadystatechange=function()
{
if (HXR.readyState==4 && HXR.status==200)
{
alert('响应就绪');
}
}
响应就绪后,就要获取数据
可以使用根据数据使用XMLHttpRequest 对象的 responseText 或 responseXML 属性
| 属性 | 描述 |
|---|---|
| responseText | 获得字符串形式的响应数据。 |
| responseXML | 获得 XML 形式的响应数据。 |
document.getElementById('sbb').innerHTML = HXR.responseText
本人写的实例:
var HXR;
if(window.XMLHttpRequest){
HXR = new XMLHttpRequest();//IE7或以上的主流浏览器
}
else{
HXR = new ActiveXObject("Microsoft.XMLHTTP");//IE5或6
}
HXR.open("GET","server.php?number="document.getElementById("search").value);
HXR.send();
HXR.onreadystatechange = function(){
if(HXR.status==200 && HXR.readyState===4){
document.getElementById('sbb').value = HXR.responseText;
}
}
初步认识ajax(个人整理)的更多相关文章
- Ajax学习整理
什么是ajax?W3School中给ajax的定义是: 1.AJAX = 异步 JavaScript 和 XML. 2.AJAX 是一种用于创建快速动态网页的技术. 3.通过在后台与服务器进行少量数据 ...
- ajax知识整理
HTTP服务 1.服务器 服务器类型 服务类型:文件服务器.数据库服务器.邮件服务器.Web服务器等: 操作系统:Linux服务器.Windows服务器等: 应用软件:Apache服务器.Nginx ...
- 数据交互 ajax代码整理
请求列表通用 /** **加载对应的试卷套题 ** */ function loadQuestions(){ var businessSubClass = { pageNo:pageNo, pageS ...
- ajax-jquery方法-初步入门01(整理)
-----------------------------------2017.07.21写----------------------------------------- 相比较原生javascr ...
- ajax-javascript原生-初步入门01(整理)
-----------------------------------2017.07.21写----------------------------------------- 1.ajax的原名: a ...
- AJAX笔记整理
AJAX: Asynchronous JavaScript and XML,异步的Javascirpt和Xml. Asynchronous:异步 与之对应的是 synchronous:同步,我们要知道 ...
- ajax代码整理
$.ajax({ type: "post", [以POST或GET的方式请求.默认GET.PUT和DELETE也可以用,有的浏览器不支持] url: url, [请求的目的地址,须 ...
- Ajax学习整理笔记
AJAX技术的出现使得javascript技术大火.不懂AJAX的同学百度一下,了解AJAX能做什么就可以了. 代码: <!DOCTYPE html> <html> <h ...
- ajax技术整理总结(1)
1.创建ajax对象 var xhr=new XMLHttpRequest(); 4.监听状态信息 xhr.onreadystatechange=function(){ //4接收完毕 ){ docu ...
随机推荐
- MarkdownPad Win10 无法预览
软件环境 系统:windows 10 x64 软件:MarkDownPad 2 遇到问题 Markdownpad的实时预览无法显示 解决办法 安装 Awesonmium sdk后,重新打开Markdo ...
- jmeter-HTTP COOKIE Manager
http://wangsheng14591.blog.163.com/blog/static/327797102012829101351887/
- Python的高级特性12:类的继承
在面向对象的程序设计中,继承(Inheritance)允许子类从父类那里获得属性和方法,同时子类可以添加或者重载其父类中的任何方法.在C++和Java的对象模型中,子类的构造函数会自动调用父类的构造函 ...
- BZOJ 2440 【中山市选2011】 完全平方数
Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是 ...
- AngularJS中的缓存
欢迎大家指导与讨论 : ) 缓存篇 一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求.多次重复地获取资源可能会导致数据重复,消耗时间.因此缓存适用于变化性不大的一些数据,缓存能 ...
- salt yum安装lamp
在批量安装软件前,先找台测试机yum装一遍,看是否报错等,是否依赖包全等 . 本次我们在dev环境下搞. 先看一下已搞成功的目录结构 定义dev环境的第二个好处 ...
- Spring Security笔记:登录尝试次数限制
今天在前面一节的基础之上,再增加一点新内容,默认情况下Spring Security不会对登录错误的尝试次数做限制,也就是说允许暴力尝试,这显然不够安全,下面的内容将带着大家一起学习如何限制登录尝试次 ...
- Android -- Apk安装简诉
安装涉及到如下几个目录 system/app 系统自带的应用程序,无法删除 data/app 用户程序安装的目录,有删除权限. 安装时把apk文件复制到此目录 data/data 存放 ...
- CareerCup All in One 题目汇总 (未完待续...)
Chapter 1. Arrays and Strings 1.1 Unique Characters of a String 1.2 Reverse String 1.3 Permutation S ...
- windows下安装git & 在git@OSC上推送代码
第一部分 windows下安装git 1.下载最新版本的git:直接百度“git”,如图所示,点击立即下载. 也可以直接在官网下载最新版本的git:http://www.git-scm.com/dow ...