AJAX入门学习总结

前端之家收集整理的这篇文章主要介绍了AJAX入门学习总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


一、AJAX简介


AJAX的全称是异步的JavaScript和XML;主要用途是对于整个页面进行局部更新;

AJAX出现的目的是因为一般网页如果稍作改动,就会重新生成整个页面代码,消耗大。而AJAX能够只更新局部页面

AJAX是在JavaScript代码中编写的;


二、XMLHttpRequest


XMLHttpRequest是整个AJAX的核心,我们通过XMLHttpRequest进行发送和接受数据;

为了取得此对象,我们需要通过以下代码

  1. <script language="Javascript">
  2. var xmlHttp;
  3. function create(){
  4. if(window.XMLHttpRequest){
  5. xmlHttp = new XMLHttpRequest();
  6. }
  7. else{
  8. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  9. }
  10. }
  11. </script>
浏览器有两种内核,IE内核和firefox内核;因此需要根据当前用户浏览器进行判断;


XMLHttpRequest有一些常用属性


(1)readyState :请求的状态;(4 表示已经响应完毕)

(2)onreadystatechange :readyState改变时调用,通常用于回调函数的返回值;

(3)responseText :返回纯文本对象;

(4)responseXML :返回XML数据的对象;

(5)status 返回当前HTTP的状态(200为正常)


XMLHttpRequest的常用函数


(1)open("GET/POST","url"); : 创建请求,指定是post还是get,并且指定发送的目的地URL;

(2)send(param); :发送请求,通常param=null;


知识回顾:


在JavaScript中

(1)document.getElementById("name").innerHTML可以设定此控件的值;

(2)onblur事件表示失去焦点时调用


登录异步验证代码


这里使用DAO进行连接数据库,因此这段代码忽略;

  1. <html>
  2. <head>
  3. <title>Title</title>
  4. <script language="Javascript">
  5. var xmlHttp;
  6. var flag = false;
  7. function create(){
  8. if(window.XMLHttpRequest){
  9. xmlHttp = new XMLHttpRequest();
  10. }
  11. else{
  12. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  13. }
  14. }
  15. function checkId(id){
  16. create();
  17. xmlHttp.open("GET","CheckServlet?id="+id);
  18. xmlHttp.send(null);
  19. flag = true;
  20. xmlHttp.onreadystatechange = callback;
  21. document.getElementById("msg").innerHTML = "正在验证";
  22. }
  23. function callback(){
  24. if(xmlHttp.readyState==4){
  25. if(xmlHttp.status==200){
  26. var text = xmlHttp.responseText;
  27. if(text=="true"){
  28. document.getElementById("msg").innerHTML = "id正确";
  29. }
  30. else{
  31. document.getElementById("msg").innerHTML = "id重复";
  32. }
  33. }
  34. }
  35. }
  36. function ischecked(){
  37. return flag;
  38. }
  39. </script>
  40. </head>
  41. <body>
  42. <form action="" method="post" onSubmit="return ischecked()">
  43. 用户ID:<input type="text" name="id" onBlur="checkId(this.value)"/><br />
  44. 姓 名:<input type="text" name="name"/><br />
  45. 密 码:<input type="text" name="password"/><br />
  46. <input type="submit" value="注册"/>
  47. <span id="msg"></span>
  48. </form>
  49. </body>
  50. </html>

注意:

(1)调用回调函数不需要加括号。

(2)readyState的拼写;


CheckServlet.java
  1. package org.servlet;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. import java.io.*;
  5. import org.dao.factory.*;
  6. public class CheckServlet extends HttpServlet{
  7. public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
  8. String id = req.getParameter("id");
  9. PrintWriter out = resp.getWriter();
  10. boolean flag=false;
  11. try{
  12. flag = DAOFactory.getInstance().findById(id);
  13. }
  14. catch(Exception e){}
  15. if(flag){
  16. out.print("true");
  17. }
  18. else{
  19. out.print("false");
  20. }
  21. }
  22. }


异步验证注册的优点:

(1)能够在没有提交前就知道用户名是否有效,现在使用的很多。

原文链接:https://www.f2er.com/ajax/166846.html

猜你在找的Ajax相关文章