Ajax

Ba la la la ~ 读者朋友们,大家好,冷锋时间,话不多说,发车!


一、什么是ajax?

   异步的Javascript和xml  ajax并不是一门新的技术 而是由html  css  js xml等技术的组合

二、ajax的核心对象

    XMLHttpRequest

三、ajax的原理

    客户端调用ajax引擎,由ajax引擎请求服务器,服务器将处理完的数据返回给ajax引擎,由ajax引擎决定着将返回的结果写入页面的什么位置,从而实现了页面的无刷新更新数据(局部刷新)    

四、异步与同步

    同步  在同一时间内只干一件事情  false
    异步  在同一时间内能干多件事情    true

五、ajax的优缺点:

  • 优点:
    1、可以无刷新的更新数据 提高用户体验
    2、减轻服务器的压力
    3、 调用其他接口的一个方便的先河 只需一个 url 几个参数就可
    4、 实现了及时通讯系统

  • 缺点:
    1、不利于搜索引擎的优化(seo)
    2、缓存比较严重

六、传统的 ajax

代码及注释:

// 1. 创建XMLHttpRequest
var obj=new XMLHttpRequest()
// 2. 通过 open 方法来连接服务器
// open (method,url,async)
//       method :   是请求方法    post 或 get  (默认)
//       url    :  路径
//       async  :  设置同步或者异步    异步 true  同步 false   (默认为 异步 true)
obj.open("get","http://127.0.0.1:3000/",true)
// 3. 通过 send 方法来发送数据
// 如果请求方法为 get ,需要发送一个空
obj.send(null)
// 4. 需要知道的事件   onreadystatechange  当属性 readyState 的值发生改变的时候会触发该事件

// 5. 属性 readyState 请求状态值
//    0      XMLHttpRequest  还没有完成初始化
//    1      已经开始发送数据  已经调用完 open  还没有调用 send
//    2      数据已经发送完成, 已经调用完 send
//    3      已经接收到服务器的部分数据,但是还没有全部接收完
//    4      已经接收到全部的数据,  响应结束

// 6. 属性  status    http状态码     200 表示成功
obj.onreadystatechange=function () {
    //  请求成功时
    if(obj.readyState==4&&obj.status==200){
        // 弹出
        alert(obj.responseText)
    }
}

// 7. 属性   responseText  为响应值

七、JQuery简化后的ajax

代码及注释:

$.ajax({
url:"", // 请求路径
data:{"键":值}, // 向服务器发送的数据
type:"post/get", // 默认的为 get
datatype:"", // 数据类型
async:true/false, // 设置请求是同步 或者 异步
success:function(e){
// 请求成功后执行的回调函数
}
})

八、个人对ajax的理解

        ajax在项目当中是当作异步传输模式来做的,异步传输时相当于同步来说的,当我们按下F5刷新页面时,那么整个页面在浏览器中都会被更新数据,而当我们须要部分数据更新时,这时候我们调用ajax,ajax会刷新这一部分数据而不刷新整张页面,这就是异步传输。 而对于我们实现ajax来说,一般分为这么几种情况,第一种情况是原生的ajax 第二种是被jQuery简化过后的ajax其中原生的ajax是这样的,首先应该创建ajax对象,这时候应该考虑兼容性,然后调用open()方法打开ajax的链接,里面写的属于有get/post,url,true/false(是否同步异步),建立连接后,开始执行send()的方法请求数据,在这个过程中,需要调用一个监听事件onreadystateChange,在监听过程中有5个状态值,当状态值为4表示执行完毕 当状态码为200时,执行成功,然后把请求的数据responseText,然后再进行遍历,执行页面操作。 jQuer简化后的ajax,$.ajax调用的时候里面有几个重要的参数type、url、dataType、success、error这些就是原生中对应参数的值


以上为个人意见,如有雷同,纯属巧合,欢迎大家多提意见!Bey 了 个 Bey ~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容