• Ajax


    /HelloServlet.java

     

    原来的页面:

      1、浏览器发送请求

      2、服务器其接收到请求,调用对应的servlet进行处理完成会有相应信息生成

     现在的交互(XmlHttpRequest对象):

      1、XmlHttpRequest对象帮我们发送请求

      2、服务器其接收到请求,调用对应的servlet进行处理完成会有相应信息生成

      3、XmlHttpRequest对象接收数据(浏览器引擎就接收不到这个数据了,xhr对象收到这个数据)

    XmlHttpRequest对象:

      所有代理对象均支持XmlHttpRequest对象

    xhr原生编程:(非常麻烦)

      var xhr = 

    我们使用jQuery包装后的ajax请求

    jquery操作ajax
    
      1、//$("#btn").click(function(){
    
          //$.get(url, [data], [callback], [type]);//中括号代表这个参数可以不用传
    
          //data 传递的数据,"k=b&k=v" 传递一个js对象
    
          //callback,定义一个回调函数,随便定义一个参数,这个参数就封装了服务器返回的数据
    
          //[type],返回的数据类型,可以不写,自动判断
    
          //type:返回内容格式:xml,html,script,json,text,_default
    
          $.get("${ctp}/getinfo",{lastName:'长沙',age:18},function(abc){
    
              alert(abc);
    
          });
    
      });

     

    改变了我们传统的交互方式:
    1.发请求
    2.服务器收到请求,处理请求经常要给页面携带数据,request.setAttribute("map",map);转发到页面
    3.浏览器接收到页面数据,在页面使用el表达式获取数据
    导致整个页面刷新:造成很大的服务器负担

    ajax只让服务器返回我们需要的部分数据即可:不用返回整个页面,;xhr替代浏览器来接收响应,发送请求:利用dom增删改的方式来改变页面效果
    什么是ajax:
    xhr对象向服务器发送请求,并收到相应数据,利用DOM增删改的方式改变页面效果

    异步:不会阻塞浏览器
    同步:会阻塞浏览器:因为需要等到服务器整个处理完请求,完成响应以后才能做其他事情

    //post和get请求的用法是一样的,只是一个是post请求,一个是get请求

    将返回的字符串,转换为JSON对象/JS对象
        第一种:var obj = JSON.parse(data);
                alert(obj.lastName);
                
        第二种:type,最后一个参数直接指定为json,jQuery自动转为json对象
                $(url,"lastName=admin&age=18",function(){
                    alert(data.lastName);
                },"json");

    底层ajax请求:
        //发送ajax请求
        //所有请求的属性都是可以通过这个js定义的
        var option = {
            url:"${ctp}/getstudentinfo",//规定请求地址
            type:"GET",//请求类型
            data:{"lastName":"haha",age:22},//发送的数据
            async:true,//调整异步:true异步,false同步
            success:function(data){
                alert("成功!"+(typeof data));
            },
            dataType:"json"
        };
        $.ajax(options);
        //禁用默认行为
        return false;
        
    //默认ajax是异步的,数据的接收和下面方法的执行,不冲突
    //异步:不用等待整个ajax请求完成才执行下面的方法
  • 相关阅读:
    java对象转json对象
    cas-client登录后报INVALID_PROXY_CALLBACK
    tomcat启动一闪而过,调试tomcat
    获取url中的参数
    cas 退出后跳转指定页面
    cas增加验证码
    spring security+cas(cas proxy配置)
    oracle 导入导出指定表
    Marshaller根据对象生成xml文件
    webpack学习笔记
  • 原文地址:https://www.cnblogs.com/hk-zsg/p/11346723.html
Copyright © 2020-2023  润新知