zoukankan      html  css  js  c++  java
  • jQuery与Ajax

    什么是Ajax

    AJAX实际上并不是新技术,而是几个技术的融合。AJAX包含以下5个部分:
    1、异步数据获取技术,使用XMLHttpRequest;
    2、基于标准的表示技术,使用XHTML和CSS;
    3、动态显示和交互技术,使用Document Object Model(文档对象模型);
    4、数据互换和操作技术,使用XML和XSLT;
    5、JavaScript,将以上技术融合在一起。其中,异步数据获取技术是所有技术的基础。

    Ajax开发案例

    开发环境:myeclipse+Tomcat+jdk

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>My JSP 'welcome1.jsp' starting page</title>
        <script type="text/javascript">
         function showInfo(){
              //在IE浏览器之下实例化Msxml2.XMLHTTP对象
              //var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
              //非IE浏览器
              var xmlHttp = new XMLHttpRequest();
              xmlHttp.open("GET","info.jsp",true);
              xmlHttp.onreadystatechange = function(){
                  if(xmlHttp.readyState==4){
                       infoDiv.innerHTML = xmlHttp.responseText;
                  }
              }
              xmlHttp.send();
         }
        </script>
      </head> 
      <body>
        欢迎使用ajax<br>
        <input type="button" value="点击获取其他信息" onClick="showInfo()">
        <div id="infoDiv"></div>
      </body>
    </html>
    
    
    //info.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>My JSP 'info.jsp' starting page</title>
      </head>
      <body>
        成功调用了AJAX
      </body>
    </html>

    Ajax开发步骤

    1、实例化HTTP对象:
    var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    或者var xmlHttp = new XMLHttpRequest();
     
    2、指定异步提交的目标和提交方式,调用了xmlHttp的open方法:
    xmlHttp.open("GET","info.jsp",true);
     
    3、指定当xmlHttp状态改变时,需要进行的处理。处理一般是以响应函数的形式进行:
    xmlHttp.onreadystatechange = function(){
        //处理代码
    }
     
    4、编写处理代码:
    xmlHttp.onreadystatechange = function(){
                  if(xmlHttp.readyState==4){
                       infoDiv.innerHTML = xmlHttp.responseText;
                  }
              }
     
    5、发出请求:
    xmlHttp.send()

    常见的readyState(交互)状态码

    0:未初始化状态,对象已经创建,尚未调用open().
    1:已初始化状态,调用open()方法以后。
    2:发送数据状态,调用send()方法以后。
    3:数据传送中状态,已经接到部分数据,但接收尚未完成。
    4:完成状态,数据全部接收完成。
     
    常见的status(HTTP)状态码
    2xx:表示成功处理请求,如200;
    3xx:需要重定向浏览器直接跳转;
    4xx:客户端请求错误,如404;
    5xx:服务器端错误

    利用Ajax处理XML文档

    将xml文件中的学生姓名载入页面中的下拉菜单。其中,该XML文件是模拟了数据库查询的结果,只不过结果以XML形式输出。 

    <?xml version="1.0" encoding="UTF-8"?>
    <students>
         <student id="1">
              <stuno>001</stuno>
              <stuname>小明</stuname>
         </student>
         <student id="2">
              <stuno>002</stuno>
              <stuname>小红</stuname>
         </student>
         <student id="3">
              <stuno>003</stuno>
              <stuname>小王</stuname>
         </student>
    </students>
    
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>My JSP 'showStudent1.jsp' starting page</title>
        <script type="text/javascript">
             //在IE浏览器之下实例化Msxml2.XMLHTTP对象
              //var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
              //非IE浏览器
              var xmlHttp = new XMLHttpRequest();
              function loadInfo(){
                  xmlHttp.open("GET", "students.xml", true);
                  xmlHttp.onreadystatechange=handle;
                  xmlHttp.send();
              }
              function handle(){
                  if(xmlHttp.readyState==4){
                       var xmlDom = xmlHttp.responseXML;
                       var names = xmlDom.getElementsByTagName("stuname");
                       loadForm.stunames.options.length = 0;
                       for(i=0;i<names.length;i++){
                            var content = names[i].text;
                            loadForm.stunames.options.add(new Option(content,content));
                       }
                  }
              }
        </script>
      </head>
      <body>
        <h4>欢迎来到管理系统</h4>
        <form name="loadForm">
         <select name="stunames">
         
         </select>
         <input type="button" value="载入学生信息" onClick="loadInfo()">
        </form>
      </body>
    </html>

    使用XML作为传输格式的优势:

    1、格式统一,符合标准;

    2、容易与其他系统进行远程交互,数据共享比较方便。

    使用XML作为传输格式的缺点:

    1、 XML文件格式文件庞大, 格式复杂, 传输占用带宽
    2、服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
    3、客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
    4、 服务器端和客户端解析XML花费资源和时间

    jQuery中Ajax应用小案例

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>My JSP 'welcome1.jsp' starting page</title>
        <script src="jquery.min.js"></script>
        <script type="text/javascript">
         function showInfo(){
              $("#infoDiv").load("info.jsp",function(){
                      
              })
         }
        </script>
      </head> 
      <body>
        欢迎使用ajax<br>
        <input type="button" value="点击获取其他信息" onClick="showInfo()">
        <div id="infoDiv"></div>
      </body>
    </html>
  • 相关阅读:
    SharePoint的安装配置
    onkeypress与onkeydown及 oncopy和onpaste 事件区别详细说明
    sql Server 的基本函数
    iOS 错误 之 http请求
    iOS 错误及解决汇总
    iOS 开源库 之 AFNetWorking 2.x
    linux 下 tomcat 之 配置静态资源路径
    iOS 之 Block Variable
    iOS 协议
    #import与@class的区别
  • 原文地址:https://www.cnblogs.com/fengxiongZz/p/7813906.html
Copyright © 2011-2022 走看看