AJAX原理分析

AJAX即"Asynchronous JavascriptAnd XML ”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的情况下,对网页的某部分进行更新(局部刷新)。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。比如说在你注册登录某一个app时候,你需要填写手机号和密码,当你填写完手机号,页面会自动发请求去数据库中查找此手机号是否已注册过,给出相应的反应。简单的来说就是:不刷新页面的情况下,自动发出请求

AJAX:异步JavaScript和XML,是一种新的思想,整合之前的多种技术,用于创建快速交互式网页应用的网页开发技术。


AJAX原理分析

1.使用JavaScript获得浏览器内置的AJAX引擎(XMLHttpRequest对象)

2通过AJAX引擎确定请求路径和请求参数

3通知AJAX引擎发送请求

AJAX引擎会在不刷新浏览器地址栏的情况下,发送请求

1服务器获得请求参数

2服务器处理请求参数(添加、查询等操作)

3服务器响应数据给浏览器

AJAX引擎获得服务器响应的数据,通过执行JavaScript的回调函数将数据传递给浏览器页面。

1通过设置给AJAX引擎的回调函数获得服务器响应的数据

2使用JavaScript在指定的位置,显示响应数据,从而局部修改页面的数据,达到局部刷新目的。

 JavaScript AJAX使用流程

(get和post会有细微差别)

1.获得ajax引擎

2.设置回调函数

3.确定请求路径

4.发送请求

//get为例
<script type ="text/ javascript ">
     function sendGet () {
             //获得ajax引擎
             var xmlhttp = new XMLHttpRequest();
             //设置回调函数
             xmlhttp.onreadystatechange = function () { 
             //xmlhttp. readyState 是有5种状态
             //0:请求未初始化(还没有调用 open())
           //1:请求已经建立,但是还没有发送(还没有调用 send())
           //2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
           //3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
           //4:响应已完成;您可以获取并使用服务器的响应了。
                if (xmlhttp. readyState == 4){
                    if (xmlhttp.status == 200) { 
                        alert ( "响应数据" + xmlhttp.responseText);
                    }
                };
             //确定请求方式,路径及参数
             xmlhttp. open ("GET" , "/sss/he110Serv1et?username = jack&password = 1234 " 
             //发送请求
             xmlhttp. send (null)
< / script>
< input type ="button" onclick ="sendGet()" value= "get请求" / > <br/>





//当为post时:
<script type = "text/ javascript ">
     function sendPost() {
             //获得ajax引擎
             var xmlhttp = new XMLHttpRequest();
             //设置回调函数
             xmlhttp.onreadystatechange = function () {  
                if (xmlhttp. readyState == 4){
                    if (xmlhttp.status == 200) { 
                        alert ( "响应数据" + xmlhttp.responseText);
                    }
                };
             //确定请求方式,路径及参数
             xmlhttp. open ("POST" , "/sss/he110Serv1et" );
             //设置请求编码
             xmlhttp.setRequestHeader("contebt-type","application/x-www-form-urlencoded");
             //发送请求
             xmlhttp. send (username="阿三"&password="123456");
< / script>
< input type ="button" onclick ="sendPost()" value= "post请求" / > <br/>

XMLHttpRequest对象浏览器兼容

function getXMLhttp(){
    var xmlhttp=null;
    //谷歌,火狐,IE最新浏览器
    if(window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }else if(window.ActiveXObject){
        //IE老版浏览器(IE6,7,8等)
        new ActiveXObject("Microsoft.XMLHttp");
    }
}

$.post()和$.get()

格式:

jquery.post(url,[data],[challback],[type])

参数1:url,请求路径

参数2:data,请求参数

参数3:callback,回调函数

参数4:type,返回内容格式,xml,htmlscript,json,text,_default

服务器响应编码为:application/json;charset=UTF-8,回调函数data类型是json对象

服务器响应编码为:text/html;charset=UTF-8,回调函数data类型是字符串。

$.get()以get请求方式发送ajax

除了请求方式不同,使用方式与$.post()完全一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值