zoukankan      html  css  js  c++  java
  • ajax 使用步骤

    1、ajax
     asynchronous javascript and xml,为了解决传统的
     web应用当中“提交-等待-提交”模式而产生的一种
     技术,其实质是通过javascript调用浏览器内置的一个
     特殊对象(XmlHttpRequest)向服务器异步发送请求,
     服务器以xml或者文本的形式返回数据给XmlHttpRequest,
     ,然后,通过javascript从XmlHttpRequest中获取数据,
     更新页面。在整个过程当中,页面无刷新。
    2、ajax编程
     step1 获得XmlHttpRequest对象。
     ie与其它浏览器不一样,其它浏览器都可以用
     new XmlHttpRequest()获得,而ie要使用ActiveXObject。
      function getXmlHttpRequest(){
        var xmlHttpRequest = null;
                    if ((typeof XMLHttpRequest) != 'undefined') {
                        xmlHttpRequest = new XMLHttpRequest();
                    }
                    else {
         // IE
                        xmlHttpRequest = 
                        new ActiveXObject('Microsoft.XMLHttp');
                    }
                    return xmlHttpRequest;
      }
     
     step2 使用XmlHttpRequest发送请求。
      1)发送get请求
       var url="some.do?name=zs";
       xhr.open("get",url,true);
       get:表示请求方式,可以大写。
       url:请求的地址,后面可以添加参数
       true:异步请求。
       xhr.send(null);
      2)发送post请求
       var url="some.do";
       xhr.open("post",url,true);
       xhr.setRequestHeader("Content-Type",
       "application/x-www-form-urlencoded");
       xhr.send("name=zs");
     step3 服务器处理请求,返回数据
     step4 使用回调函数来处理服务器返回的数据
       var url="some.do";
       xhr.open("get",url,true);
       xhr.onreadystatechange=function(){
        if(xhr.readyState==4){
         var text = xhr.reponseText;//返回的是文本
         var xml = xhr.responseXML;//返回的是xml数据
         //使用返回的数据更新页面
         document.getElementById('a1').innerHTML=text;
        }
       };
       xhr.send(null); 
       //get方式,参数要加在url后面
       //post方式,参数要加在send()里
    3、XmlHttpRequest对象
     readyState属性:XmlHttpRequest与服务器通讯的状态。
      0(创建完毕) :XmlHttpRequest对象已经创建好,
      但没有调用open方法。
      1(初始化):XmlHttpRequest没有调用send()方法。
      2(发送):XmlHttpRequest开始发送数据给服务器。
      3(获取数据):XmlHttpRequest,正获取服务器返回的数据
      4(获取数据完毕):此时,可以通过XmlHttpRequest获得服务器
      返回的所有数据。
     reponseText属性:服务器返回的文本。
     responseXML属性:服务器返回的xml数据。
     onreadystatechange属性:用来设置回调函数,即
     处理服务器返回的数据。
     status属性:返回服务器的状态码(200,500,404)。
     
    
      
     
     
     
     
     1 <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
     2 <html>
     3     <head>
     4         <title>Insert title here</title>
     5         <style>
     6         #d1{
     7             width:400px;
     8             height:200px;
     9             margin-top:30px;
    10             margin-left:40px;
    11             border 1px solid black;
    12             background-color:#cccccc;
    13             padding-left:30px;
    14             padding-top:30px;
    15         }
    16     </style>
    17         <script type="text/javascript">
    18         function getXmlHttpRequest(){
    19                 var xmlHttpRequest = null;
    20                 //初始化xmlHttpRequest对象
    21                 if ((typeof XMLHttpRequest) != 'undefined') {
    22                     // FF
    23                     xmlHttpRequest = new XMLHttpRequest();
    24                 }
    25                 else {
    26                     // IE
    27                     xmlHttpRequest = new ActiveXObject('Microsoft.XMLHttp');
    28                 }
    29                 return xmlHttpRequest;
    30         }
    31         function f1(value){
    32             var xhr = getXmlHttpRequest();
    33             xhr.open("post","getProduct",true);
    34             xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    35             xhr.onreadystatechange = function(){
    36                 if(xhr.readyState == 4){
    37                     var s2 = document.getElementById('s2');
    38                     var txt = xhr.responseText;
    39                     var arr = txt.split(";");
    40                     for(i=0;i<arr.length;i++){
    41                         var str = arr[i].split(":");
    42                         var op = new Option(str[0],str[1]);
    43                         s2.options[i] = op;
    44                     }
    45                 }
    46             }
    47             xhr.send("catalog=" + value);
    48         }
    49     </script>
    50     </head>
    51     <body style="font-size:30pt;">
    52         <div id="d1">
    53             <select style="150px;" name="s1" id="s1"
    54                 onchange="f1(this.value);">
    55                 <option value="car">
    56                     汽车
    57                 </option>
    58                 <option value="ryp">
    59                     日用品
    60                 </option>
    61             </select>
    62             <select style="150px;" name="s2" id="s2">
    63             </select>
    64         </div>
    65     </body>
    66 </html>
     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <html>
     4     <head>
     5         <title>Insert title here</title>
     6         <script type="text/javascript">
     7             function getXmlHttpRequest(){
     8                 var xmlHttpRequest = null;
     9                 if ((typeof XMLHttpRequest) != 'undefined') {
    10                     xmlHttpRequest = new XMLHttpRequest();
    11                 }
    12                 else {
    13                     // IE
    14                     xmlHttpRequest = 
    15                     new ActiveXObject('Microsoft.XMLHttp');
    16                 }
    17                 return xmlHttpRequest;
    18         }
    19         function test(){
    20             var req = getXmlHttpRequest();
    21             alert(req);
    22         }
    23         function valiusername(){
    24             var xhr = getXmlHttpRequest();
    25             var url = "valiusername.do?username=" + document.getElementById('username').value;
    26             xhr.open("get",encodeURI(url),true);
    27             xhr.onreadystatechange=function(){
    28                 if(xhr.readyState == 4){
    29                     if(xhr.status == 200){
    30                         var txt = xhr.responseText;
    31                         var s1 = document.getElementById('username_msg');
    32                         s1.innerHTML = txt;
    33                     }else{
    34                         var s1 = document.getElementById('username_msg');
    35                         s1.innerHTML='system error';
    36                     }
    37                 }else{
    38                     var s1 = document.getElementById('username_msg');
    39                     s1.innerHTML = 'checking...';
    40                 }
    41             };
    42             xhr.send(null);
    43         }
    44         
    45         function valiusername2(){
    46             var xhr = getXmlHttpRequest();
    47             xhr.open("post","valiusername.do",true);
    48             xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    49             xhr.onreadystatechange=function(){
    50                 if(xhr.readyState == 4){
    51                     var txt = xhr.responseText;
    52                     document
    53                     .getElementById("username_msg").innerHTML=txt;
    54                 }else{
    55                     document
    56                     .getElementById("username_msg").innerHTML='正在验证...';
    57                 }
    58             }
    59             xhr.send("username=" + document.getElementById("username").value);
    60             
    61         }
    62         
    63     </script>
    64     </head>
    65     <body style="font-size:30pt;">
    66         <form action="regist.do" method="post">
    67             username:<input type="text" name="username" onblur="valiusername2();" id="username"/>
    68             <span style="color" id="username_msg"></span>
    69             <br/>
    70             age:<input type="text" name="age"/><br/>
    71             <input type="submit" value="confirm"/>
    72         </form>
    73     </body>
    74 </html>
  • 相关阅读:
    .netcore下Dapper helper类
    C#各版本新增加功能(系列文章)
    MySQL 查询连续登陆7天以上的用户
    MySQL 8.0版本 自动排序函数dense_rank() over()、rank() over()、row_num() over()用法和区别
    MYSQL 查看锁的方式
    MYSQL 回表查询原理,利用联合索引实现索引覆盖
    ES查询某个字段分词结果
    maven 安装和配置
    Java 注解
    Java 异常
  • 原文地址:https://www.cnblogs.com/smile361/p/2642180.html
Copyright © 2011-2022 走看看