步步为营-77-Ajax简介

AJax:异步JavaScript和XML.Asynchronous JavaScript and XML

优点:无刷新

1 JavaScript下的Ajax

  1.1 XMLHttpRequest对象  使用ajax有一个很重要的对象XMLHttpRequest,而该对象的创建方式

  var xhr = new XMLHttpRequest();//常用

  var xhr =  new ActiveXObject("Microsoft.XMLHTTP");//(低版本的ie)

1.2 XMLHttpRequest对象的方法
new创建对象  open创建请求   send发送请求
1.3 根据以上三种方法,readyState对应五种状态0 1 2 3 4
new => 0 => open => 1 => send =>2=> 正在接收服务端返回的数据... 3 =>数据接受完毕 4
1.4 Open() 和Send() 方法
1.4.1 get请求
//参数1:请求方式  参数2:请求地址,可带参数(?name='zhangsan')  参数3:是否是异步请求
xhr.open("get", "01JavaScript下的Ajax.aspx.cs",true);
xhr.Send();  
1.5  回调函数:当服务器将数据返回给浏览器后,自动调用该方法
xhr.onreadystatechange
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="01JavaScript下的Ajax.aspx.cs" Inherits="AjaxTest._01JavaScript下的Ajax" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script>function checkVal(txt) {if (txt.value == ""){alert("用户名不能为空!");return;}var xhr;if (XMLHttpRequest) {xhr = new XMLHttpRequest();} else {xhr =  new ActiveXObject("Microsoft.XMLHTTP");}xhr.open("get", "01JavaScript下的Ajax.aspx?name=" + txt.value, true);xhr.send();//回调函数:当服务器将数据返回给浏览器后,自动调用该方法xhr.onreadystatechange = function () {if (xhr.readyState ==4) {if (xhr.status == 200) {alert(xhr.responseText);return;}}}}</script>
</head>
<body><form id="form1"><%--当用户名失去焦点时候,检验用户是否存在--%>用户名:<input type="text" id="UserName" value="" οnblur="checkVal(this)" /><br />密码:<input type="text" id="UserPwd" /></form>
</body>
</html>
Ajax
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace AjaxTest
{public partial class _01JavaScript下的Ajax : System.Web.UI.Page{public void Page_Load(object sender, EventArgs e){if (Request["name"]!=null){if (Request["name"] == "张三"){Response.Write("用户名已占用");Response.End();}else{Response.Write("恭喜你,用户名可以使用");} }}}
}
后台

 

  1.6 post请求

     xhr.open("post", "01JavaScript下的Ajax.aspx", true);
            xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
            xhr.send("name=" + txt.value);

2 通常我们是直接使用jQuery来完成Ajax请求的

 2.1 JQuery下的get请求

<!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 src="http://localhost:58888/JQuery/jquery-1.7.1.min.js"></script><script>$(function () {$("#UserName").blur(function () {if ($("#UserName").val() == "") {alert("用户名不能为空!");return;}//Ajax异步请求$.get("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },//回调函数
                function (date) {alert(date);});});});</script>
</head>
<body>用户名:<input type="text" id="UserName" value="" οnblur="checkVal(this)" /><br />密码:<input type="text" id="UserPwd" />
</body>
</html>
jQuery下的Get

2.2 JQuery下的post请求===非常简单

将     $.get("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },

改为 $.post("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },

2.3 JQuery下的另一种写法

  //Ajax异步请求---方法二
                $.ajax({
                    type: "post",
                    url: "02JQuery下的Ajax.ashx",
                    data: "name=" + $("#UserName").val() + "&pwd=" + $("#UserPwd").val(),
                    success: function (msg) {
                        alert(msg);
                    }
                });

<!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 src="http://localhost:58888/JQuery/jquery-1.7.1.min.js"></script><script>$(function () {$("#UserName").blur(function () {if ($("#UserName").val() == "") {alert("用户名不能为空!");return;}//Ajax异步请求---方法一//$.post("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },////回调函数//function (date) {//    alert(date);//});//Ajax异步请求---方法二
                $.ajax({type: "post",url: "02JQuery下的Ajax.ashx",data: "name=" + $("#UserName").val() + "&pwd=" + $("#UserPwd").val(),success: function (msg) {alert(msg);}});});});</script>
</head>
<body>用户名:<input type="text" id="UserName" value=""   /><br />密码:<input type="text" id="UserPwd" />
</body>
</html>
jQuery Ajax

 2.4 将Ajax的结果 返回出函数

 function GetReSumBYIDs(OuGUID, CcID, BiID) {var yearRem;$.ajax({url: "../Ashx/GetBudgetRemainingZLDC.ashx?OrgUnitGUID=" + OuGUID + "&CostCenterID=" + CcID + "&BudgetItemID=" + BiID,type: "POST",data: {},dataType: "text",async: false,//这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待//数据加载完成后才继续执行
                        success: function (result) {yearRem = result;}, error: function (msg) {//出错
                        }});return yearRem;}
View Code

 

 

转载于:https://www.cnblogs.com/YK2012/p/7041629.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福禄克Link IQ功能:PoE负载测试及故障排除

自从最初的IEEE 802.3af 1型以太网供电&#xff08;PoE&#xff09;标准于2003年首次推出以来&#xff0c;该技术已经发展到包括2型&#xff08;高达30瓦&#xff09;、3型&#xff08;高达60瓦&#xff09;和4型&#xff08;高达90瓦&#xff09;。这意味着PoE电压现在支持从手…

深山红叶PE工具箱嫦娥一号纪念版 V30[1115]

深山红叶PE工具箱嫦娥一号纪念版 V30[1115] <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />软件大小 172.72 MB软件类别 国产软件/操作系统 运行环境 Win2003, WinXp, Win2000, Nt, WinMe, Win9x 授权方式 免费版软件语言 简…

H5之前端操作文件

js是否能够操作文件? js在HTML5以前浏览器端是无法操作文件的&#xff0c;但HTML5中给a标签增加了一个download属性&#xff0c;只要有这个属性&#xff0c;点击这个链接时浏览器就不在打开链接指向的文件&#xff0c;而是改为下载&#xff08;目前只有chrome、firefox和opera…

一个有趣的问题,讨论讨论

昨天和一位同事讨论项目过程的一个问题&#xff0c;他提出一个有趣的案例&#xff1a; 假设制作一批茶壶&#xff0c;预定时间是10号&#xff0c;综合考虑10号之前肯定完成&#xff0c;于是定了10号的船&#xff0c;结果制作厂商5号就完成了&#xff0c;表面看起来提前完成是一…

利用局域网测试仪进行网络性能测试

随着互联网科技的飞速发展&#xff0c;网络变的越来越庞大&#xff0c;数据量越来越高&#xff0c;网络速率成几何倍数增长&#xff0c;网络应用也越来越复杂&#xff0c;对网络的性能、稳定性和可靠性都提出了更高的要求。在日益复杂的网络环境中一旦发生网络故障&#xff0c;…

详解-制作根文件系统,并使用yaffs,jffs,nfs挂载系统(2)

1.安装mkyaffsimage, mkyaffs2image命令(用来制作yaffs文件系统) 第一个命令针对Flash小页512B,第二个针对Flash大页2KB首先下载压缩文件 yaffs_source_util_larger_small_page_nand.tar.bz2安装mkyaffs2image命令为例: tar –xjf yaffs_source_util_larger_small_page_nand.ta…

SAP 发票校验

在医院里打着点滴,看着SAP的最佳业务实践,别有感觉,之前做完N次的发票校验,看完BP才知道还有很多种,呵呵,是不是认为我很认学啊,其实是打点滴太无聊,打发时间。 发票校验属于物料管理&#xff08;MM&#xff09;模块&#xff0c;发票为财务和成本控制提供付款信息和发票…

数据中心综合布线时,使用交叉连接和互连的好处?

数据中心中&#xff0c;在交换机之间或交换机与服务器之间&#xff0c;为了灵活性和方便管理&#xff0c;有源设备之间都是使用交叉连接和通过配线架互联。在一些场合&#xff0c;还有的要求在同一通道内使用多个交叉连接或互联。 大多数人都知道&#xff0c;永久链路是通道的…

Oracle 通过出生日期计算年龄

sysdate 为系统日期时间&#xff0c;BIRTH_DATE 为表中出生日期字段 SELECTCOUNT( * ) FROMBARN_SWALLOW_INFO WHEREVALID_FLAG 1 AND IS_JINQIAO 1 AND TRUNC( months_between( SYSDATE, BIRTH_DATE ) / 12 ) > 25 AND TRUNC( months_between( SYSDATE, BIRTH_DATE )…

网站如何集成百度UEditor编辑器

在平时的网站维护使用过程中&#xff0c;富文本编辑器是网站必不可少的元素之一。现在市面上各种编辑器功能设计参差不齐&#xff0c;自己做了几个网站都是用蝉知建站系统做的&#xff0c;而蝉知默认内置的编辑器是KindEditor&#xff0c;功能简单&#xff0c;已经满足不了我的…

[JavaScript][转]offsetParent和parentElement的区别

作者&#xff1a;未知  来源于&#xff1a;网络转载  发布时间&#xff1a;2006-9-30 23:42:32 一直以为offsetParent和parentElement是一回事&#xff0c;最近在做web控件才发现原来的理解是大错特错。 parentElement 在msdn的解释是Retrieves the parent object in the…

福禄克DSX系列教你如何测试铜缆跳线和光纤跳线

无论是用于在数据中心的光纤配线区和交换机之间进行连接的光纤跳线&#xff0c;还是用于将终端设备连接到工作区插座的局域网中的铜跳线&#xff0c;跳线都是网络不可或缺的一个组成部分&#xff0c;而跳线通常也是网络中最脆弱的环节。它比其他任何部件都更容易受到损坏。 由于…

最新可用NOD32免ID升级服务器

最新可用NOD32免ID升级服务器 最新可用NOD32免ID升级服务器 &#xff0c;请参阅这里&#xff0c;我会保持可用&#xff0c;^_^&#xff01;上面的解决不了&#xff0c;下面的慢慢尝试吧&#xff01;-----------------------------------------------能用的及说明如下&#xff1…

通过福禄克LinkIQ网络电缆测试仪排除 VLAN 故障

IT行业的每个人都听说过局域网&#xff08;LAN&#xff09;&#xff0c;并且很可能知道它是一个由无数设备组成的网络——计算机、服务器、路由器、监控摄像头等他们都是都连接在一个物理位置。由于虚拟局域网&#xff08;VLAN&#xff09;在技术上并不存在于物理上&#xff0c…

2021-09-22

missing right parenthesis 少反括号 后面没跟反括号。

Ubuntu16.04 安装 docker

安装docker首先要需要一台宿主机&#xff0c; 我目前用VMvare下安装的Ubuntu16.04系统为宿主机&#xff0c;进行docker安装测试。 ubuntu安装时选的中文环境&#xff0c;生成的sources.list里面的源url主要是&#xff1a;cn.archive.ubuntu.com&#xff0c;这个可以从国内服务器…

js下的keyCode.

js下的keyCode.这样好记 Keycode 常数 可在代码中的任何地方用下列常数代替实际值&#xff1a; 常数 值 描述 vbKeyLButton 0x1 鼠标左键 vbKeyRButton 0x2 鼠标右键 vbKeyCancel 0x3 CANCEL 键 vbKeyMButton 0x4 鼠标中键 …

使用福禄克CFP单模光纤测试仪像专家一样设置参数!

在使用福禄克CFP单模光纤测试仪测试光纤链路时&#xff0c;如果要测试一个光纤接头的损耗&#xff0c;不可能只测量单个光纤接头&#xff0c;必须将其与类似的已知质量接头相匹配。这里光纤接头损耗指的是配对光纤接头的损耗&#xff0c;这也是为什么要设置参考值。 举例&…