分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Ajax&Json —— Ajax

发布时间:2023-09-06 02:20责任编辑:胡小海关键词:Ajax

Ajax 交互时必须要有Json

1. Ajax 简介

  • 1,Ajax 是一种网页开发技术,(Asynchronous Javascript + XML)异步 JavaScript 和 XML;
  • 2,Ajax 是异步交互,局部刷新;
  • 3,Ajax 能减少服务器压力;
  • 4,Ajax 能提高用户体验;

2. Ajax 交互与传统交互比较

  • 传统交互:网页整体刷新,服务器压力大,用户体验不好;
  • Ajax 交互:局部刷新,服务器压力小,用户体验好;

3. Ajax 核心知识

  1. XMLHttpRequest 对象创建

    • 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
    • XMLHttpRequest 用于在后台与服务器交换数据。
    • 这意味着可以在不重新加载整个网页的情况下,对网页的某 部分进行更新。
  2. XMLHttpRequest 对象请求后台

    1. open(method,url,async) :规定请求的类型、URL 以及是否异步处理请求。
      • method:请求的类型;GET 或 POST
      • url:文件在服务器上的位置
      • async:true(异步)或 false(同步)
    2. send(string) :将请求发送到服务器。
      • string:仅用于 POST 请求
    3. GET 还是 POST
      • get 参数会跟在URL 后面,post则是封装起来
      • 与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
      • 然而,在以下情况中,请使用 POST 请求:
        1. 无法使用缓存文件(更新服务器上的文件或数据库)
        2. 向服务器发送大量数据(POST 没有数据量限制)
        3. 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
    4. setRequestHeader(header,value): 向请求添加 HTTP 头。
      • header: 规定头的名称
      • value: 规定头的值
    5. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    6. 异步 - True 或 False?
      • AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
      • True:表示异步,异步表示程序请求服务器的同时,程序可以继续执行;能提高系统的运行效率;
      • False:表示同步,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会 挂起或停止。
      • 我们一般都是用 True;
    7. 实例:
      <!-- web.xml 配置 --><servlet> ?????<servlet-name>getAjaxNameServlet</servlet-name> ?????<servlet-class>com.java1234.web.GetAjaxNameServlet</servlet-class> ?</servlet> ???<servlet-mapping> ?????<servlet-name>getAjaxNameServlet</servlet-name> ?????<url-pattern>/getAjaxName</url-pattern> ?</servlet-mapping>
      <script type="text/javascript"> ???function loadName(){ ???????var xmlHttp; ???????if(window.XMLHttpRequest){ ???????????xmlHttp=new XMLHttpRequest(); ???????}else{ ???????????xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); //过滤 IE5 和 IE6 ???????} ???????alert("readState状态:"+xmlHttp.readyState+";status状态:"+xmlHttp.status); ???????xmlHttp.onreadystatechange=function(){ //重写方法 ???????????alert("readState状态:"+xmlHttp.readyState+";status状态:"+xmlHttp.status); ???????????if(xmlHttp.readyState==4 && xmlHttp.status==200){ ???????????????alert(xmlHttp.responseText); ???????????????document.getElementById("name").value=xmlHttp.responseText; //赋值 ???????????} ???????}; ???????// xmlHttp.open("get", "getAjaxName?name=jack&age=11", true); ????????// xmlHttp.open("post", "getAjaxName?name=jack&age=11", true); ???????// xmlHttp.send(); ???????????????xmlHttp.open("post", "getAjaxName", true);//规定请求的类型为Post、URL、异步处理请求。 ???????xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //头信息,向请求添加 HTTP 头 ???????xmlHttp.send("name=jack&age=11"); //将请求发送到服务器。 ???}</script>

 

3. XMLHttpRequest 对象响应服务器

  1. onreadystatechange 事件

    • 当请求被发送到服务器时,我们需要执行一些基于响应的任务。
    • 每当 readyState 改变时,就会触发 onreadystatechange 事件。
    • readyState 属性存有 XMLHttpRequest 的状态信息。
    • 下面是 XMLHttpRequest 对象的三个重要的属性:
      • onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
      • readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
        • 0: 请求未初始化
        • 1: 服务器连接已建立
        • 2: 请求已接收
        • 3: 请求处理中
        • 4: 请求已完成,且响应已就绪
      • status
        • 200: "OK"
        • 404: 未找到页面
    • 在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
  2. 如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

    • responseText 获得字符串形式的响应数据。
    • responseXML 获得 XML 形式的响应数据。(了解即可)

 

Ajax&Json —— Ajax

原文地址:https://www.cnblogs.com/Cocoomg/p/9900281.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved