Ajax基本使用

前端之家收集整理的这篇文章主要介绍了Ajax基本使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

=======Ajax基本使用==========


#什么是Ajax,优点,什么时候用

全称:Asynchronous JavaScript and XML

异步的JavaScript和XML应用

Ajax请求,服务器返回的是纯数据,不是HTML页面

浏览器发请求1--->Tomcat服务器处理-->返回给浏览器

浏览器发请求2--->Tomcat服务器处理-->返回给浏览器

异步特点:请求2可以在请求1没处理返回情况下发出

优点:异步处理;

提升用户体验(在页面不刷新情况下,处理请求,改变页面部分显示)

提升请求的处理效率

选用标准:避免整个页面频繁刷新;实现局部处理刷新


#Ajax使用

XMLHttpRequest作用:发送请求,接收响应结果(内置在浏览器)

##XMLHttpRequest对象使用

-new XMLHttpRequest();//firefox,chrome

-new ActiveXObject("Microsoft.XMLHttp");//IE

-open(请求类型,url,同步异步);//创建请求

-send(post数据);//发送请求

-responseText;//获取服务器返回的内容

-responseXML;//获取服务器返回的XML内容

-readyState;//Ajax请求处理状态0-4

0:请求未初始化,1:请求未发送;2:请求发送完毕 3:请求正在处理;4:请求处理完毕

-onreadystatechange:事件

-status;//服务器响应HTTP CODE 200正确


#示例代码

demo1.html

<html>
  <head>
    <title>demo1.html</title>	
    <Meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
      //获取XMLHttpRequest对象
      function getXhr(){
        var xhr = null;
        if(window.XMLHttpRequest){
          xhr = new XMLHttpRequest();
        }else{
          xhr = new ActiveXObject("Microsoft.XMLHttp");
        }
        return xhr;
      }
      
      //发送请求
      function sendRequest1(){
        var xhr = getXhr();//获取XMLHttpRequest对象
        //alert(xhr);
        
        xhr.open("get","hello.do",true);//创建请求
        
        //注册回调函数
        xhr.onreadystatechange = function(){
          //解析结果,刷新页面处理
          //alert(xhr.readyState)
          if(xhr.readyState==4 && xhr.status==200){
            var msg = xhr.responseText;//获取返回的信息
            alert(msg);
          }
        }
        
        //参数对post有效,get写null
        xhr.send(null);//发送请求
      }
    </script>
    <script type="text/javascript">
      //失去焦点时,用户名检测 
      function sendRequest2(){
        //获取请求参数
        var name = document.getElementById("name").value;
        //alert(name);
        var s1 = document.getElementById("name_span");
        if(name==""){
          s1.innerHTML = "用户名为空";
          return ;
        }
        
        //发送ajax请求
        var xhr = getXhr();
        //alert(xhr);
        //var url = "check.do?name="+name;
        //xhr.open("get",true);
        xhr.open("post","check.do",true);
        //post请求时,须添加此消息头,否则参数为null
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
        
        xhr.send("name="+name+"&age=1");
        //友好提示
        s1.innerHTML = "正在检测...";
        
        xhr.onreadystatechange = function(){
          //alert(xhr.readyState);
          if(xhr.readyState==4&&xhr.status==200){
             var msg = xhr.responseText;
             s1.innerHTML = msg;
          }
        };
      }
    </script>
  </head>
  
  <body>
    <input type="button" id="btn1" value="发送ajax请求"
      onclick="sendRequest1();"/>
    <hr/>
    <input type="text" id="name" onblur="sendRequest2();"/>
    <span id="name_span"></span>
  </body>
</html>

HelloServlet.java

package com.ajax.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req,HttpServletResponse res)
			throws ServletException,IOException {
		res.setContentType("text/html;charset=utf-8");
		PrintWriter pw = res.getWriter();
		System.out.println("哈喽 ajax");
		pw.print("哈喽 ajax");
		pw.close();
	}
	
}

CheckServlet.java

package com.ajax.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CheckServlet extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req,IOException {
		req.setCharacterEncoding("utf-8");
		res.setContentType("text/html;charset=utf-8");
		//接收请求参数
		String name = req.getParameter("name");
		//get解决乱码方法
		//name = new String(name.getBytes("iso8859-1"),"utf-8");
		System.out.println(name);
		String age = req.getParameter("age");
		System.out.println(age);
		
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		//检查
		PrintWriter pw = res.getWriter();
		if("scott".equals(name)){
			//用户名被占用
			pw.print(name+":用户名被占用");
		}else{
			//用户名可用
			pw.print(name+":用户名可用");
		}
		pw.close();
	}
	
}
原文链接:https://www.f2er.com/ajax/162389.html

猜你在找的Ajax相关文章