Ajax&Json —— 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 形式的响应数据。(了解即可)

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

时间: 2024-11-10 13:31:02

Ajax&Json —— Ajax的相关文章

032.Ajax+Json+Jquery

AjjA: AjaxJ: JSONJ: jQuery -----------------------------------------------JSONJavascript Object NotationJS对象标记 class User{ public int Id{get;set;} public string Name{get;set;} public string Phone{get;set;} // public string HomeAddress{get;set;} // pu

struts2 + ajax + json的结合使用,实例讲解

struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4.2.min.js ②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar PS:版本可自己控制!~ 2.过程 ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤测试 3.实例 ① action类,JsonAction  注

JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表

本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上.   对此,给出代码示例,通过网络爬虫技术,将上传到HDFS的新浪网新闻信息实现热词统计功能,通过图表的柱状图来显示出来. ------> 目录: 1.JFreeChart可视化处理(生成本地图片) [1]HDFS文件读取 [2]JDFreeChart库应用 2.AJAX+JSON+EChart生成可视化图

echarts3+ajax+json+SpringMVC+mybatis

最近使用的东西有点多,就不分开描述了,写在一起,也比较连贯 最近在写统计查询,所以用到了echarts3,用了几个小时看了下,还是不错的,主要准备好字符串,直接嵌入就可以 下面我描述下需求,这样在看代码还能有一些针对性 需求:实现对访问记录的统计,每天一个访问记录表,需要根据时间段进行查询(这里面就设计到联调查询),同时,在页面点击某一天的数据时,需要显示这一天每个时段的访问人数(这里面就有点意思了,用到了ajax+json) 好,先附一张截图 这就是最后显示的样子,下面来点实惠的,上代码~ 我

【JavaScript.6】阶段概念总结之HTML+CSS+JavaScript+xml+xpath+Json+Ajax

[前言] 最近学习了很多BS的新东西,有很多新名称,概念多了,理解也少了,很多东西都混乱.今天静下来把学到的几 个概念性东西总结一下.本文多是一些概念性的个人理解,希望同样存在疑惑的小伙伴看完后能够如入桃源般地豁然 开朗.当然如果我的理解有偏差,请指出来,共同进步. 关于BS的学习,相信很多人都已经走过了,当初最开始接触的是牛腩,里面用到了很多BS的知识,包括HTML. CSS.JavaScript和Ajax等.对于有基础或者正处于迷惑之间的人来说,接下来的话可能会很有感触. [HTML] 首先

ajax+json+java

1.首先下载json所以依赖的包, Json-lib 最新版 json-lib-2.3-jdk15.jar,其官方网站是:http://json-lib.sourceforge.net/可以直接download,细心的你会发现其网站页面里面有提示它还需要其他包: Json-lib requires (at least) the following dependencies in your classpath: •jakarta commons-lang 2.4 •jakarta commons-

Spring 接收转换 jquery ajax json数组字符串

1.ajax发送json字符串 </pre><p>组建对象</p><p></p><pre code_snippet_id="449843" snippet_file_name="blog_20140813_2_7927326" name="code" class="javascript">var student = new Object(); studen

springmvc ajax&amp;json处理

1 使用HttpServletResponse来处理--不需要配置解析器 @Controller public class AjaxController { @RequestMapping("/ajax") public void ajax(String name,HttpServletResponse resp) throws IOException{ if ("sgcc".equals(name)) { resp.getWriter().print("

struts2,json,ajax整合内容记录

使用ssh三大框架整合时关于struts2,json,ajax整合内容记录.这里写主要部分代码 action部分: 注意事项,action部分的返回值要有set和get方法,否则会报错. package com.hcj.action; import net.sf.json.JSONObject; import com.hcj.dto.User; import com.hcj.service.UserService; import com.opensymphony.xwork2.ActionSup