• JavaEE的ajax入门


    JavaEE的ajax入门

    代码下载

    链接:https://pan.baidu.com/s/1pb_sdSmV9Ncs6UIz3q2ztg
    提取码:fgx6
    复制这段内容后打开百度网盘手机App,操作更方便哦

    1. ajax简介

    ajax是Asynchronous Javascript And XML,即异步js+xml。

    它是一个原有技术的集成,包括:

    • css
    • xhtml
    • dom
    • XmlHttpRequest
    • js

    ajax原理

    1. 通过XmlHttpRequest对象向服务器发送异步请求(核心),得到响应数据。
    2. 再用JavaScript操作DOM从而更新页面。

    XmlHttpRequest

    这个一种支持异步请求的技术,发送请求而不会阻塞用户行为,达到无需全页刷新的效果。

    • 常用XmlHttpRequest的对象属性

      属性 描述
      onreadystatechange 每次状态改变所触发事件的事件处理程序
      status 从服务器返回的数字代码,404(未找到)和200(已就绪)
      responseText 从服务器进程返回数据的字符串形式
      responseXML 从服务器进程返回的DOM兼容的文档数据对象
      status Text 伴随状态码的字符串信息
      readyState 0未初始化,1初始化,2发送数据,3数据传送,4完成
      status 从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)

    ajax作用

    以往改变页面上的数据显示,需要刷新整个页面,需要对所有资源更新。而我们实际上只需要少量资源的更新,这样就造成了资源的浪费。Ajax可以解决这个问题,其通过后台与服务器进行少量的数据交换,可以只更新指定部分的页面。

    ajax优点

    • 异步机制。能够快速响应用户动作
    • 不需要插件,只要js支持

    ajax缺点

    • 浏览器将无法使用后退和收藏功能

      浏览器的后退访问的是历史记录,而ajax并没有改变页面地址。

      在html5下,已经有了解决方案。不过稍显麻烦。

    2.ajaxQuickStart

    标准流程

    创建对象>发送请求>获取响应数据

    1. 创建XmlHttpRequest对象

      • 这段代码是每次使用都是一样的,复制黏贴即可

        function createXmlHttpRequest() {
            var xmlHttp;
            try { // Firefox, Opera 8.0+, Safari
                xmlHttp = new XMLHttpRequest();
            } catch (e) {
                try {// Internet Explorer
                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {
                    }
                }
            }
            return xmlHttp;
        }
        
    2. 使用get发送接受

      • 得到XmlHttpRequest对象

        var request = createXmlHttpRequest();
        
      • 发送请求

        //参数介绍
        //参数1:请求类型 GET POST
        //参数2:请求路径,可以用相对路径(相对调用的jsp页面的地址)
        //参数3:是否异步,true:异步 false:同步
        //这个是不带数据的
        request.open("GET", "DemoServlet01", true);
        //这个是带数据的
        request.open("GET", "DemoServlet01?name=zhangsan", true);
        //上面像是封装好了,这一步是执行
        request.send();
        
      • 获取响应数据

        //相当于设置了一个监听器
        request.onreadystatechange = function () {
            //请求完成并且服务器成功响应
            if (request.readyState == 4 && request.status == 200) {
                //request.responseText就是获取服务器相应的数据
                alert(request.responseText);
            }
        };
        request.send();
        
    3. 使用post方式发送/接受

      • 得到XmlHttpRequest对象

        var request = createXmlHttpRequest();
        
      • 发送请求

        //2.发送请求,把第一个参数改为post,传的还是原来的servlet,servlet编写还是和原来一样
        request.open("POST", "DemoServlet01", true);
        //设置一个请求头,表明发送一个经过post编码的请求
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        //发送的参数
        request.send("name=kk凯凯&age=99");
        
      • 接受请求

        //和上面一样,设置一个监听器
        request.onreadystatechange = function () {
            if (request.readyState === 4 && request.status === 200) {
                alert("post"+ request.responseText);
            }
        };
        
  • 相关阅读:
    蓝桥杯 矩阵翻硬币
    2018 南京预选赛 J Sum ( 欧拉素数筛 、Square-free Number、DP )
    HDU 3826 Squarefree number ( 唯一分解定理 )
    HDU 5727 Necklace ( 2016多校、二分图匹配 )
    HDU 5726 GCD (2016多校、二分、ST表处理区间GCD、数学)
    hihocoder 1457 后缀自动机四·重复旋律7 ( 多串连接处理技巧 )
    后缀自动机 ( SAM ) 模板
    2018 焦作网络赛 K Transport Ship ( 二进制优化 01 背包 )
    2018 焦作网络赛 G Give Candies ( 欧拉降幂 )
    蓝桥杯 买不到的数目 ( 裴蜀定理 )
  • 原文地址:https://www.cnblogs.com/richardwlee/p/10325642.html
Copyright © 2020-2023  润新知