• Ajax基础介绍


     

    1. 什么是Ajax

    首先来看一下什么是Ajax,英语全称Asynchronous JavaScript And XML,翻译成中文就是异步的JavaScriptXML也被称为异步无刷新技术

     

    先来解释什么是同步?什么是异步?

    所谓同步,就是发出HTTP请求以后,客户端只能等待HTTP响应回来才能够干其他的事儿,只要HTTP响应没有回来,那就什么都做不了

     

    所谓异步,发出HTTP请求以后,客户端不用非要等到HTTP响应回来,就可以做其他的事儿。

     

    Ajax并不是一门新的语言或者说是新的技术,而是之前已有的技术:JSXMLDOMCSS等多种技术的结合。

     

    Ajax是一个与服务器端无关的技术

     

    哪些地方使用了Ajax

    百度地图:

     

    表单验证

     

    智能提示

     

     

    1. Ajax工作原理

    传统Web应用的工作:当用户每触发一个HTTP请求,即使只有少量的数据发生变化,其他部分的内容都没有变化,一旦提交,页面还是会重新刷新

    处理—等待—处理—等待

     

    Ajax技术实现的是按需获取数据

     

     

    传统Web应用和Ajax工作原理示意图:

     

     

     

    传统Web应用                               Ajax工作原理

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 编写Ajax步骤

    ①  创建Ajax对象

    有两种不同的方式:IE的方式和主流浏览器的方式

    Ajax中最核心的对象就是XMLHttpRequest对象,最早是由微软公司于1999年在IE5里面内嵌的一种技术。现在市面上几乎所有浏览器都内置了这个对象。

     

    主流浏览器创建XMLHttpRequest对象的方式

     

     

    IE浏览器创建XMLHttpRequest对象的方式

     

     

    通过window.ActiveXObject可以判断用户使用的浏览器是IE还是主流浏览器,根据用户使用的浏览器创建不同类型的XMLHttpRequest对象

     

     

    ② 与服务器建立连接并且向服务器发送请求

    什么时候建立服务器连接并向服务器发送请求,这里我们需要通过JS事件来进行判断

    建立与服务器的连接,通过XMLHttpRequest对象的open()

    该函数接收3个参数:1. 连接服务器的方式  2. 连接地址  3. 同步还是异步

    GET示例:如下

     

    这里是采用get的方式连接服务器,服务器的地址为test.php 向服务器传输的数据为username=xiejie  由于向服务区传输的数据通过get的方式是拼接在url后面的,所以send()方法里面写入一个null

     

     

    POST示例如下:

     

     

    ③ 设置回调函数是为了处理从服务器取回来的数据

    open()方法和send()方法之间需要添加状态的监听

    通过XMLHttpRequest对象的onreadystatechange属性就可以监听Ajax引擎的工作状态

    Ajax的状态如下:

    0-(未初始化):还没有调用send()方法

    1-(载入):已经调用了send()方法

    2-(载入完成):send()方法执行完成

    3-(交互):正在解析响应内容

    4-(完成):响应内容已经解析完成,可以在客户端使用了

     

    通过XMLHttpRequest对象的readyState属性可以获取Ajax运行的状态值

    通过XMLHttpRequest对象的status属性可以获取到返回的HTTP响应的状态码

    通过XMLHttpRequest对象的responseText属性可以获取从服务器返回的值

     

     

     

    服务器端:服务器接收到客户端提交过来的用户名,然后进行判断,最后返回文本数据

     

     

    详细代码请参见【表单验证Demo

     

  • 相关阅读:
    个人学习分布式专题(四)分布式服务的基础之网络通信
    个人学习分布式专题(二)分布式服务治理之分布式协调技术Zookeeper
    个人学习分布式专题(二)分布式服务治理之Dubbo框架
    python学习---50行代码实现图片转字符画2
    python学习---50行代码实现图片转字符画1
    Nginx学习
    个人学习分布式专题(一)大型分布式应用架构基础
    基于dubbo的分布式系统(一)安装docker
    JMS学习(一)
    许大神- xulinbo xulingbo 分享
  • 原文地址:https://www.cnblogs.com/jiafangfang/p/7441409.html
Copyright © 2020-2023  润新知