zoukankan      html  css  js  c++  java
  • Ajax学习(1)-简单ajax案例

    1.什么是Ajax?

    •   Ajax是Asynchronous JavaScript and XML 的缩写,即异步的Javascript和XML。
    •   可以使用Ajax在不加载整个网页的情况下更新部分网页信息。
    •   Ajax以XMLHttpRequest对象为核心,结合了Javascript、DOM、CSS的新技术。
    •   Ajax的主要特征是异步发送请求以及动态加载相应数据。

    2.Ajax应用的处理流程:

    1. 使用JavaScript脚本创建XMLHttpRequest对象
    2. 使用  XMLHttpRequest对象向服务器发送请求,GET和POST请求均可以发送,推荐使用POST
    3. 为XMLHttpRequest对象的onreadystatechange,绑定时间监听函数
    4. 当服务器响应送回到浏览器时,通过XMLHttpRequest对象获取服务器的相应数据
    5. 使用JavaScript通过DOM动态更新Html页面,也可为服务器响应数据增加CSS样式

    3.下面是一个使用简单的Ajax的小例子:

        首先使用JavaScript创建XMLHttpRequest对象,下面是创建XML对象的JS代码:

     JavaScript Code 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var xmlreq;
        
        function creatXMLHttpRequest(){
            if(window.XMLHttpRequest){
                xmlreq=new XMLHttpRequest();  //IE7以上版本及其它浏览器
            }else if(window.ActiveXObject){
                try {
                    xmlreq=new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        xmlreq=new ActiveXObject("Micorosoft.XMLHTTP");//IE5、IE6
                    } catch (e) {
                    }
                }
            }
            
        }

         然后是使用XMLHttpRequest对象向服务器发送请求,代码如下:

     JavaScript Code 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function sendRequest()
    {
        
        creatXMLHttpRequest(); //创建XMLHttpRequest对象
        
        var uri = "index.jsp"//定义请求url
        
        xmlreq.open("POST", uri, true); //打开与服务器的连接
        
        xmlreq.onreadystatechange = changeProcess; //定义XMLHttpRequest对象的状态改变时的处理函数
        
        xmlreq.send(null); //发送请求
    }

        定义XMLHttpRequest状态改变时的事件处理函数(回调函数),代码如下:

     JavaScript Code 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function changeProcess()
    {
        
        if (xmlreq.readyState == 4//XMLHttpRequest对象处理状态为4,表示对象读取服务器响应结束
        {
            
            if (xmlreq.status == 200//服务器返回状态码为200表示响应完成
            {
                
                var students = xmlreq.responseText.split("$");
                
                //通过innerHTML属性来动态向DIV中填充内容,运行时删除Id后面_x_x的字符
                document.getElementById("mysql").innerHTML = students[0];
                
                document.getElementById("java").innerHTML = students[1];
                
                document.getElementById("tomcat").innerHTML = students[2];        
            }    
        }
               setInterval(sendRequest, 3000);

     服务器对请求处理的jsp文件为index.jsp

     JSP Code 
    1
    2
    3
    4
    5
    6
    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.Random" %>
    <%
    Random random=new Random(System.currentTimeMillis());
    out.println(random.nextInt(10)+"$"+random.nextInt(10)+"$"+random.nextInt(10));
    %>
    页面文件ajax1.html,并且将上述的JavaScript代码均放入此文件中。

     html Code 
    1
    2
    3
    4
    5
    6
    <body>
         mysql的学习人数是:<div id="mysql"></div>
         java的学习人数是:<div id="java"></div>
         Tomcat的学习人数是:<div id="tomcat"></div>
    </body>
    至此,打开服务器,访问:localhost:8080/工程名/ajax1.html
    便可以看到,在页面上的人数会每隔3秒刷新一次。

  • 相关阅读:
    pythonselenium 3种等待方式
    SQL Server2008生成数据库字典
    C# 二分法查找和排序
    JavaScript 中的面向对象的初步认识
    分享一个通过面向对象方式完成的拖拽功能
    javascript 面向对象的继承的实现
    【转】ASP.NET MVC 3 Service Location, Part 3: View Engines/View Pages
    【转】ASP.NET MVC 3 Service Location, Part 2: Controllers
    【转】ASP.NET MVC 3 Service Location, Part 8: Value Providers
    【转】ASP.NET MVC 3 Service Location, Part 6: Model Validation
  • 原文地址:https://www.cnblogs.com/elgin-seth/p/5293791.html
Copyright © 2011-2022 走看看