封装好的Ajax调用函数以及基本方法总结
2015-04-12 10:09
453 查看
学了Ajax,今天来一个总结
首先什么是Ajax:Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。直白的说就是实现局部刷新:提升用户的体验。(jsp:同步方案(顺序流执行的))
在Ajax中,有几个技术要结合用:
静态部分:HTML,CSS,用于美化外观。
JavaScript:JavaScript可以操作DOM(文档对象模型)。
xml/json:数据交换。
XMLHTTPRequest对象:这是Ajax核心,用于异步的访问服务器
现在来在一个JS文件中创建并且封装好一个Ajax基本创建函数。
这里要注意:
get:明文显示在地址栏(长度512字节)
post:地址栏不现实,以http协议的实体方式来传输数据,理论上没有长度限制
下面创建一个分别调用他们的页面,查看效果:
这里要注意一个重要的参数是xmlHttp.responseText 可以取到回应的信息。
效果
首先是get
调用的是startRequest(urlString,handleStateChange),要传入的参数是:提交的地址?=参数名和参数,状态改变的JavaScript函数。
然后是post
调用的是startRequestByPost(url,queryString,handleStateChange),要传入的参数是:提交的地址,参数名和函数,状态改变的JavaScript函数。区别就是参数是否跟在地址后面。
首先什么是Ajax:Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。直白的说就是实现局部刷新:提升用户的体验。(jsp:同步方案(顺序流执行的))
在Ajax中,有几个技术要结合用:
静态部分:HTML,CSS,用于美化外观。
JavaScript:JavaScript可以操作DOM(文档对象模型)。
xml/json:数据交换。
XMLHTTPRequest对象:这是Ajax核心,用于异步的访问服务器
现在来在一个JS文件中创建并且封装好一个Ajax基本创建函数。
[code] var xmlHttp; //创建了一个xmlhttprequest对象 function createXMLHttpRequest() { if (window.XMLHttpRequest) { // 如果可以取得XMLHttpRequest xmlHttp = new XMLHttpRequest(); // Mozilla、Firefox、Safari }else if (window.ActiveXObject) { // 如果可以取得ActiveXObject xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer } } //对外提供的请求方法 function startRequest(urlString,handleStateChange) { createXMLHttpRequest(); // 创建非同步请求 xmlHttp.onreadystatechange = handleStateChange; // 创建状态改变调用的函数 xmlHttp.open("GET", urlString); // 开启连接,注意,此处为GET请求,参数是明文显示在后面的,所有下面的请求为空 xmlHttp.send(null); // 传送请求 } function startRequestByPost(url,queryString,handleStateChange) { createXMLHttpRequest(); // 创建非同步请求 xmlHttp.onreadystatechange = handleStateChange; // 创建状态改变调用的函数 xmlHttp.open("POST", url); //post请求,参数不能通过地址栏传递,所有需要调用xmlHttp.send 传递参数 //application/x-www-form-urlencoded 将请求的参数放到http请求的实体部分,而不放在地址栏上 xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send(queryString); } //界面取id元素的值 function $(elementId){ return document.getElementById(elementId); }
这里要注意:
get:明文显示在地址栏(长度512字节)
post:地址栏不现实,以http协议的实体方式来传输数据,理论上没有长度限制
下面创建一个分别调用他们的页面,查看效果:
[code]<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!doctype html> <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"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="js/common.js"></script></head> <body> <a href="javascript:void" onclick="startRequest('hello.jsp?name=I am get',handleStateChange)">发出get请求</a> <a href="javascript:void" onclick="startRequestByPost('hello.jsp','name=I am post',handleStateChange)">发出post请求</a> </body> </html> <script> //异步处理函数:当服务器给客户端响应时,会自动调用这个函数处理 function handleStateChange(){ //首先要判断状态 //服务器的就绪状态 if (xmlHttp.readyState == 4) { // 测试状态是否请求完成 if (xmlHttp.status == 200) { // 如果服务器回应OK alert("服务器的相应" + xmlHttp.responseText); // 这边取到回应的文字 } } } </script>
这里要注意一个重要的参数是xmlHttp.responseText 可以取到回应的信息。
效果
首先是get
调用的是startRequest(urlString,handleStateChange),要传入的参数是:提交的地址?=参数名和参数,状态改变的JavaScript函数。
然后是post
调用的是startRequestByPost(url,queryString,handleStateChange),要传入的参数是:提交的地址,参数名和函数,状态改变的JavaScript函数。区别就是参数是否跟在地址后面。
相关文章推荐
- objective-c类以及方法调用的基本总结
- Ajax 控件 的使用 以及js调用后台方法【自己总结一下】
- 关于java基础--基本数据类型封装以及String类方法讲解
- 封装、继承、多态的基本详细使用方式与方法以及含义
- 网站架构--ajax跨域问题总结--方法以及调试
- Ajax 基本实现方法
- .net 2.0下的asp.net ajax基本使用方法
- 自己用了一段时间AJAX,一些基本方法和小结
- .net操作文件的基本方法总结
- ASP.NET AJAX (Atlas) 拖放(Drag & Drop)功能6种实现方法总结
- ASP.NET Ajax 中 'Sys' 未定义脚本错误解决方法总结
- ajax中常用对象的属性及方法总结
- ASP.NET AJAX (Atlas) 拖放(Drag & Drop)功能6种实现方法总结
- 总结C# ----后台弹出窗体和打开网页的不同方法,以及关闭网页的方法.
- JAVA基础学习总结---原码、补码、反码以及基本数据类型
- B/S结构测试的基本方法总结(不全的希望大家补充)
- AJAX最基本的两种使用方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(5):服务器端和客户端数据类型的自动转换:基本类型和枚举类型
- 对javascript基本对象的属性以及方法的实例介绍
- 浅谈ajax中get与post的区别,以及ajax中的乱码问题的解决方法