Ajax详解

Ajax详解

    

Ajax工作原理:

Ajax的全称是:Asynchrnous JavaScript and XML,其中asynchronous是异步的意思,它与传统的web开发中采用的同步不一样

关于同步和异步:

异步是面向字符串的传输,它的单位是字符串;而同步是面向比特的传输,它的单位是帧,他在传输的时候要求接收方的时钟保持一致。

Ajax所包含的技术:

1、使用CSSXHTML来表示

2、使用DOM模型来交互和动态显示

3、使用XMLHttpRequest来 和服务器进行异步通信

4、使用JavaScript来绑定和调用

Ajax的原理和XMLHttpRequest对象

xmlHttpRequestajax的核心技术,它是IE5中首先引入的,是一种支持异步请求的技术

XmlHttpRequest的属性:

Onreadystatechange:每次状态改变所触发事件的事件处理程序

ResponseText:从服务器进程返回数据的字符串形式

ResponseXML:从服务器进程返回DOM兼容的文档对象

Status:从服务器返回的数字代码,如404(未找到)200(已就绪)

Status Text:伴随状态码的字符串信息

Readystate:对象状态值

0(未初始化)对象已建立,但是尚未初始化(尚未调用open方法)

1(初始化)对象已建立,尚未调用send方法

2(发送数据)send方法以调用,但是当前的状态及HTTP头未知

3(数据传送中)已接收部分数据,因为响应及HTTP头不全,这是通过responseBodyresponseText获取部分数据会出错误

4(完成)数据接收完毕,这是可以通过responseXMLresponseText获取完整的回应数据

但是各个浏览器之间存在差异,所以创建XMLHttpResponse对象需要不同的方法,这个差异主要体现在IE和其它浏览器之间。下面是一个比较标准的创建XMLHttpRequest对象的方法。

function createxmlhttp() {
        if (Window.XmlHttpRequest) {
            //非IE浏览器创创建xmlhttprequest对象
            xmlhttp = new XMLHttpRequest();
        }
        if (Window.ActiveXObject) {
            //IE浏览器创建xmlhttprequest对象
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            xmlhttp = new ActiveXObject("msxml2.XMLHTTP");
        }
    }
    function Ustbwuyi() {
        var data = document.getElementById("username").value;
        createxmlhttp();
        if (!xmlhttp) {
            alter("创建xmlhttp对象异常!");
            return false;
        }
//POST:向服务器提交的数据类型,POST还是get,URL:请求的地址和传递的参数;传输方式:false为同步,true为异步,默认为true
        xmlhttp.open("POST", url, false);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {
                document.getElementById("user1").innerHTML = "数据正在加载.....";
                if (xmlhttp.status == 200) {
                    document.write(xmlhttp.responseText);
                }
            }
        }
        xmlhttp.send();
}

Ajax的优缺点

优点:

1、最大的一点就是页面无刷新,在页面与服务器通讯,给用户很好的体验

2、使用异步的方式与服务器通讯,不会打断用户的操作,具有更加迅速的响应能力

3、可以最大程度的减少冗余请求和响应对服务器造成的负担

4、不需要下载插件或小程序

缺点:

1、ajax干掉的back按钮,对浏览器的后腿机制造成破坏

2、安全问题:跨站点脚本攻击,SQL注入

3、对搜索引擎的支持较弱

4、破坏了程序的异常机制。至少从目前看来,像ajax.dllajaxpro.dll这些ajax框架是会破坏程序的异常机制的

5、违背了url和资源定位的初衷

 

Ajax可以用来验证用户名是否注册

 

采用两种方式

1 ajax.dll

2 自己写xmlhttprequest对象

ajax中常见到的一些错误

 1 配置的问题

在pageload里面配置该页面的时候

原文地址:https://www.cnblogs.com/Momery/p/9116767.html