Ajax_HelloWorld

-- 不是一种新技术, 是多种技术的聚合

优点:

  在不刷新整个网页的情况下, 对局部网页进行刷新, 从而实现数据的异步交互.

缺点:

  1. 页面局部刷新, 导致后退等功能失效

  2. 对流媒体的支持没有flash, javaApplet好

  3. 一些手持设备如手机, 支持性差

执行步骤:

范例: ajax的HelloWorld

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    
    <script type="text/javascript">
        window.onload = function() {
            // 获取事件对象
            var obj = document.getElementsByTagName("a")[0];
            // 定义对象的行为
            obj.onclick = function() {
                // 1. 创建一个XMLHttpRequest对象
                var request = new XMLHttpRequest();
                
                // 2. 准备发送的URL和方式
                var url = this.href;
                var method = "GET";
                
                // 3. 准备发送
                request.open(method, url);
                
                // 4. 开始发送
                request.send(null);
                
                // 5. 响应函数
                request.onreadystatechange = function() {
                    // 判断响应是否完成
                    if (request.readyState == 4) {
                        // 判断响应是否正确
                        if (request.status == 200 || request.status == 304) {
                            var responseText = request.responseText;
                            alert(responseText);
                        }
                    }
                }
                // 取消对象的默认行为, 即: 点击之后停留在本页面不跳转
                return false;
            }
        }
    </script>
  </head>
 
  <body>
    <a href="Hello.txt">Ajax</a>
  </body>
</html>

测试:

-----------------------

禁用缓存:

 var url = this.href + "?time = " + new Date();

 因为new Date()是时刻变化的, 所以url也是随时变化, 这样就可以让浏览器时时刻刻都发送不同的请求状态,

防止浏览器"偷懒"!

---------------------------

发送post请求:

var method = "POST";

request.setRequestHeader("ContentType", "application/x-www-form-urlencoded");

request.send("name='Peter'");

测试:

posted @ 2017-03-10 16:02  半生戎马,共话桑麻、  阅读(160)  评论(0)    收藏  举报
levels of contents