zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    关于 SAP UI5 对服务器端渲染 Server Sider Render 的支持问题
    java基础_数组_数据类型_原码反码补码_进制转换_编码_shell
    java基础_==与equals,try catch finally return ,装箱与拆箱, 字符串
    Java基础_泛型详解
    java基础_吃透Java集合系列九:HashMap
    java基础_吃透Java集合
    java基础_TCP和UDP总结及常见面试题
    java基础_由i++引发的并发问题_volatile关键词详析
    SpringBoot:SpringBoot项目的配置文件放在Jar包外加载和jar包打成exe
    对docker拉取镜像的一个知识点弥补不足
  • 原文地址:https://www.cnblogs.com/jiafangfang/p/7441409.html
Copyright © 2011-2022 走看看