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 ==) {
if (xhr.status == ) {
alert(xhr.responseText);
return;
}
}
} }
</script>
</head>
<body>
<form id="form1">
<%--当用户名失去焦点时候,检验用户是否存在--%>
用户名:
<input type="text" id="UserName" value="" onblur="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="" onblur="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;
}

步步为营-77-Ajax简介的更多相关文章

  1. PHP AJAX 简介

    AJAX 简介 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX 是什么? AJAX = Asynchronous JavaScript and XML. AJAX ...

  2. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...

  3. js进阶课程ajax简介(ajax是浏览器来实现的)

    js进阶课程ajax简介(ajax是浏览器来实现的) 一.总结 1.ajax使用需要服务器支持,比如phpstudy 2.ajax是浏览器支持的功能:ajax有个核心对象XMLHttpRequest, ...

  4. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)   Django基础七之 ...

  5. ajax简介及JS写原生ajax

    ajax 1.什么是ajax ajax 的全称是Asynchronous JavaScript and XML,其中, Asynchronous 是异步的意思,指的是异步 JavaScript 和 X ...

  6. AJAX简介

    基本介绍 AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML). 国内翻译常为“阿贾克斯”和阿贾克斯足球队同音.Web应用的交互如Fli ...

  7. AJAX 简介

    什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...

  8. 1.AJAX简介

    没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,比如实现显示服务器时间.每次都要刷新页面的坏处:页面刷新打断用户操作.速度慢.增加服务器的流量压力.如果没有AJAX ...

  9. AJAX开发技术--AJAX简介

    Asynchronous  JavaScript and XML,异步JavaScript和XML 主要目的用于页面的局部刷新.不用全部刷新,提高性能. 在AJAX中主要是通过XMLHttpReque ...

  10. jQuery AJAX 简介

    AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. jQuery AJAX 实例 使用 jQuery AJAX 修改文本内容 尝试一下 » 什么是 AJAX? A ...

随机推荐

  1. Markdown超链接及脚注

    Markdown链接及脚注 [时间:2017-02] [状态:Open] [关键词:markdown,标记语言,页内链接,超链接,脚注] 本文内容来自Markdown 11种基本语法,仅对其中我不熟悉 ...

  2. About me & OI这一年

    1 最近碰到一些 OIers 问我学 OI 的经历 回忆了一下,我做的第一道题是A+B Problem,时间:2018年2月15日 呀,正好一年了 2 我是来自 HB 的 OIer 一枚 现在高一,就 ...

  3. linux shell 之尝试编写 企业级 启动脚本

    企业Shell面试题10:开发企业级MySQL启动脚本 说明: MySQL启动命令为: 1 /bin/sh mysqld_safe --pid-file=$mysqld_pid_file_path 2 ...

  4. configparser模块--配置文件

    该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值). 创建文件 import configparser config = ...

  5. linux中bashrc与profile的区别

    bashrc与profile的区别 要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell. ...

  6. bigfile tablespace

    背景       这次终于有个linux实际迁移oracle的机会了,之前都是学习实验.想起最早时,都是windows搞oracle,又让我想起多年期一个项目,数据量太大及计算逻辑太复杂,我用存储过程 ...

  7. Linux系统平均负载3个数字的含义

    越来越多人开始接触Linux操作系统,从VPS到无线路由的刷机系统(如OpenWRT.Tomato),同时也必不可少地会在各式各样的探针和系统监测界面上看到"系统平均负载"或者&q ...

  8. elasticsearch自动按天创建索引脚本

    elasticsearch保存在一个索引中数据量太大无法查询,现在需要将索引按照天来建,查询的时候关联查询即可 有时候es集群创建了很多索引,删不掉,如果是测试环境或者初始化es集群(清空所有数据), ...

  9. https openssl http2

    2018-3-21 10:27:45 星期三 参考: 对https, http2的解释 总结: 生成自有证书(非第三方证书颁发公司) 我使用的是gitbash工具, 命令为: $ openssl re ...

  10. 【原创】大叔经验分享(33)hive select count为0

    hive建表后直接将数据文件拷贝到table目录下,select * 可以查到数据,但是select count(1) 一直返回0,这个是因为hive中有个配置 hive.stats.autogath ...