• 11.4_Ajax & Jquery


    一、Ajax是什么?

      Asynchronous Javascript And XML(异步JavaScript和XML),

       并不是新的技术,只是把原有的技术,整合到一起而已。

        1.使用CSS和XHTML来表示。
        2. 使用DOM模型来交互和动态显示。
        3.使用XMLHttpRequest来和服务器进行异步通信。
        4.使用javascript来绑定和调用。

    二、有什么用?

      网页如果想要刷新局部内容。 那么需要重新载入整个网页。用户体验不是很好。 就是为了解决局部刷新的问题。 保持其他部分不动,只刷新某些地方。


    三、数据请求 Get

      1.创建对象

        function ajaxFunction(){
        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请求
        function get() {
         //1. 创建xmlhttprequest 对象
          var request = ajaxFunction();

           2. 发送请求。

        参数一: 请求类型 GET or POST
        参数二: 请求的路径
        参数三: 是否异步, true or false
        request.open("GET" ,"/day16/DemoServlet01" ,true );
        request.send();
    }

        如果发送请求的同时,还想获取数据,那么代码如下

          //执行get请求
          function get() {

          //1. 创建xmlhttprequest 对象
          var request = ajaxFunction();

          //2. 发送请求
          request.open("GET" ,"/day16/DemoServlet01?name=aa&age=18" ,true );

          //3. 获取响应数据 注册监听的意思。 一会准备的状态发生了改变,那么就执行 = 号右边的方法
          request.onreadystatechange = function(){
          //前半段表示 已经能够正常处理。 再判断状态码是否是200
          if(request.readyState == 4 && request.status == 200){
          //弹出响应的信息
          alert(request.responseText);
          }
        }
            request.send();
      }

    四、数据请求 Post


      <script type="text/javascript">

        //1. 创建对象
        function ajaxFunction(){
        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;
        }

        function post() {
        //1. 创建对象
        var request = ajaxFunction();

        //2. 发送请求
        request.open( "POST", "/day16/DemoServlet01", true );

        //如果不带数据,写这行就可以了
        //request.send();

        //如果想带数据,就写下面的两行

        //如果使用的是post方式带数据,那么 这里要添加头, 说明提交的数据类型是一个经过url编码的form表单数据
        request.setRequestHeader("Content-type","application/x-www-form-urlencoded");

        //带数据过去 , 在send方法里面写表单数据。
        request.send("name=aobama&age=19");
      }


        </script>


        需要获取数据


        function post() {
        //1. 创建对象
        var request = ajaxFunction();

        //2. 发送请求
        request.open( "POST", "/day16/DemoServlet01", true );

        //想获取服务器传送过来的数据, 加一个状态的监听。
        request.onreadystatechange=function(){
        if(request.readyState==4 && request.status == 200){

        alert("post:"+request.responseText);
        }
      }

        //如果使用的是post方式带数据,那么 这里要添加头, 说明提交的数据类型是一个经过url编码的form表单数据
        request.setRequestHeader("Content-type","application/x-www-form-urlencoded");

        //带数据过去 , 在send方法里面写表单数据。
        request.send("name=aobama&age=19");
      }

    五、Query是什么?

      javascript 的代码框架。

    六、有什么用?

      简化代码,提高效率。

    七、 核心

      write less do more , 写得更少,做的更多。

      oad

      <a href="" onclick="load()">使用JQuery执行load方法</a>

      有两次刷新, 先走 onClick的方法,取到数据回来之后,赋值显示。 接着 走 href=""的路径,但是这个属性没有给值,所以会把当前的页面重新再刷新一次。所以导致看不见值。


      找到这个元素, 去执行加载的动作, 加载/day16/DemoServlet02 , 得到的数据,赋值显示
      $("#aaa").load("/day16/DemoServlet02" , function(responseText , statusTXT , xhr) {
      //找到id为text01的元素, 设置它的value属性值为 responseText 对应的值
      $("#aaa").val(responseText);
      });


      Get

      $.get("/day16/DemoServlet02" , function(data ,status) {
      $("#div01").text(data);
      });


    #赋值显示

    * val("aa");

    > 只能放那些标签带有value属性
    * html("aa"); ---写html代码
    * text("aa");

    > 其实没有什么区别,如果想针对这分数据做html样式处理,那么只能用html()


    八、load & get

       load

      $("#元素id").load(url地址);

      $("#div1").load(serlvet); ---> 使用的get请求,回来赋值的时候, 使用text();去赋值
      get

      语法格式 : $.get(URL,callback);


      使用案例: $.get("/day16/DemoServlet02" , function(data ,status) {
              $("#div01").text(data);
             });
      post

        语法格式:$.post(URL,data,callback);


        function post() {
        $.post("/day16/DemoServlet02", {name:"zhangsan",age:18},function(data,status) {
          //想要放数据到div里面去。 --- 找到div
          $("#div01").html(data);
        });
        }

  • 相关阅读:
    Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown block 解决办法
    unknown host www.baidu.com 解决方法
    [Errno 256] No more mirrors to try 解决方法
    超级优化锁定系统重要文件防止篡改
    隐藏linux软件及内核版本
    linux内核参数注释与优化
    Linux内核参数基础优化
    ulimit linux文件配置
    history历史记录控制
    TMOUT优化终端超时
  • 原文地址:https://www.cnblogs.com/zyyzy/p/12616138.html
Copyright © 2020-2023  润新知