AJAX是一种创建交互式网页应用的网页开发技术,是异步Javascript和XML的集合。其核心是XMLHttpRequest对象,可以在不向服务器端提交整个页面的情况下,实现局部更新网页,它是AJAX的Web应用程序架构的一项关键技术。
基本属性:
基本方法:
XMLHttpRequest五步法:
第一:创建XMLHttpRequest对象
第二:注册回调函数
第三:设置和服务器交互的参数
第四:设置向服务器端发送的数据,启动和服务器端的交互
第五:判断和服务器端的交互是否完成,还有判断服务器端是否返回正确的数据
HTML代码:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript" > var xmlhttp; function submit() { //1、创建XMLHttpRequest对象 if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMineType) {//针对某些特定版本的mozillar浏览器的BUG进行修正 //将覆盖发送给服务器的头部,强制 text/xml 作为 mime-type xmlhttp.overrideMineType("text/xml"); } } else if (window.ActiveXObject) {//针对IE浏览器进行处理 var activexName = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Miscrosoft XMLHTTP"]; for (var i = 0; i < activexName.length; i++) { try{ xmlhttp=new ActiveXObject(activexName[i]); break; } catch (e) { } } } if (xmlhttp == undefined || xmlhttp == null) { alert("当前浏览器不支持插件XMLHttpRequest对象,请更换浏览器"); return; } //2、注册回调函数 xmlhttp.onreadystatechange = callback; //获取当前值 var username = document.getElementById("userName").value; //设置字符串参数,并进行编码(用于POST提交方式) var args = "username=" + encodeURIComponent(username); //GET 交互 //3、设置和服务器端交互的参数 //xmlhttp.open("GET", "XMLHttpRequest.aspx?username=" + username, true); //POST交互 //3、设置和服务器端交互的参数 //使用Post方式不用担心缓存 xmlhttp.open("POST", "XMLHttpRequest.aspx?username=" + username, true); //设置Content-Type类型,告知服务器实体中有参数 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //4、设置向服务器端发送的数据,启动和服务器端的交互 //用于GET提交 //xmlhttp.send(null); //用于POST提交 xmlhttp.send(args); function callback() { //5、判断和服务器端的交互是否完成,还有判断服务器端是否正确返回了数据 if (xmlhttp.readyState == 4) {//readyState=4表示交互完成 if (xmlhttp.status == 200) {//status=200表示正确返回了数据 //纯文本数据的接收方法 var message = xmlhttp.responseText; var div = document.getElementById("message"); div.innerHTML = message; } } } } </script> </head> <body> <input type="text" id="userName" /> <input type="button" value="用户名校验" onclick="submit()" /> <br /> <div id="message"></div> </body> </html>
aspx中的代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace XMLHttpRequest五步法 { public partial class XMLHttpRequest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Response.Clear(); //获取当前值,get提交使用Request.QueryString方法 //string username = Request.QueryString["username"]; //POST提交,使用Request.Form string username = Request.Form["username"]; Response.Write("姓名:'" + username + "'<br/>时间:'" + DateTime.Now.ToString() + "'"); Response.End(); } } }
总结:
XMLHttpRequest是AJAX的核心部分,需要好好理解。刚开始接触的时候,有些不明白是怎么回事,而且视频中讲的也是原生的AJAX,表面上看来不太好理解,但是通过具体的demo实践,就会发现其实这个挺容易理解的。
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文向大家介绍JavaScript Array对象详解,包括了JavaScript Array对象详解的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Js的Array 数组对象,具体内容如下 目录 1. 介绍:介绍 Array 数组对象的说明、定义方式以及属性。 2. 实例方法:介绍 Array 对象的实例方法:concat、every、filter、forEach、indexOf、join、
本文向大家介绍详解JavaScript RegExp对象,包括了详解JavaScript RegExp对象的使用技巧和注意事项,需要的朋友参考一下 什么是 RegExp? 正则表达式描述了字符的模式对象。 当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。 简单的模式可以是一个单独的字符。 更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。 您可以规
本文向大家介绍详解JavaScript函数对象,包括了详解JavaScript函数对象的使用技巧和注意事项,需要的朋友参考一下 函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 注释: 形参不需要加上类型; return语句为可选,没有return语句的函数返回undefined; 局部变量与全局变量 在函数内声明:局部变量 在函数外声明:全局变量 向一个新
本文向大家介绍javascript中clone对象详解,包括了javascript中clone对象详解的使用技巧和注意事项,需要的朋友参考一下 开发中,打断对象间的引用关系,只想下个副本的情况无处不在,clone一个对象就在所难免了。 JavaScript中,简单的方法就是用JSON函数,将对象stringify成字符串,再parse成一个新对象。要么就是从网上搜个代码,开源社区里面clo
本文向大家介绍jQuery.deferred对象使用详解,包括了jQuery.deferred对象使用详解的使用技巧和注意事项,需要的朋友参考一下 一、前言 jQuery1.5之前,如果需要多次Ajax操作,我们一般会使用下面的两种方式: 1).串行调用Ajax 这种方式代码可读性差,效率低,晦涩难懂,调试和排错的复杂度大。 2).并行调用Ajax 这种方式对于callbacks函数调用来说已经很
本文向大家介绍Javascript中arguments对象详解,包括了Javascript中arguments对象详解的使用技巧和注意事项,需要的朋友参考一下 在上篇文章中我们讨论了javascript中的默认参数,这篇文章,我们来讨论下javascript的arguments参数对象。 如下例的一个函数,我们如何根据传入参数的不同来做不同的处理呢? 幸运的是,javascript有一个argum