异步初体验

昨天又学到了新的知识了AJax  AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。这是百度到的东西   好处:通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。

很早以前就听说过这个东西了,听起来很高大上的啊!

我觉得就是,为一个按钮注册一个事件,当点击的时候就使用一个新的线程去访问后台,然后再根据得到返回结果继续下面的逻辑。

其实说起来,AJAX就是一段JavaScript代码

 1 <script src="../JS/jquery-1.8.2.js"></script>
 2     <script type="text/javascript">
 3         $(function () {
 4             $("#btnLogin").click(function() {
 5                 $.get("PLogin.ashx", {
 6                     UserName: $("#txtClientID").val(),
 7                     Pwd: $("#txtPassword").val(),
 8                     Code: $("#txtCode").val()
 9                 }, function(data) {
10                     if (data=="ok") {
11                         window.location.href = "Main.aspx";
12                     } else {
13                         alert(data);
14                     }
15                 });
16             });
17         });

首先是引入jQuery,其实直接用JavaScript就能实现了,不过jQuery给我们封装好了,用起来很爽

为按钮注册点击事件,方法里使用  $.get()    或    $.post()

这两个方法在jQuery中使用起来没有任何区别,都是有三个参数

第一个:需要请求的地址

第二个:JSON格式的键值对,是传到后台的参数

第三个:传一个方法进去,方法有一个参数,就是用来接收后台返回的数据的,方法体中就是根据返回的数据实现接下来的逻辑的。

下面再贴一段我的那个一般处理程序的代码:

 1 public class Login1 : IHttpHandler,IRequiresSessionState
 2     {
 3
 4         public void ProcessRequest(HttpContext context)
 5         {
 6             context.Response.ContentType = "text/plain";
 7             string UserName = context.Request["UserName"];
 8             string Password = context.Request["Pwd"];
 9             string ValidateCode = context.Request["Code"];
10
11             //验证码校验
12             string ServerCode = context.Session["ValidateCode"] == null
13                 ? string.Empty
14                 : context.Session["ValidateCode"].ToString();
15             if (ServerCode == string.Empty || ValidateCode != ServerCode)
16             {
17                 //校验失败
18                 context.Response.Write("验证码校验失败");
19             }
20             else
21             {
22                 BLL.HKSJ_USERS bll = new HKSJ_USERS();
23                 List<Model.HKSJ_USERS> list= bll.GetModelList(string.Format(" LoginName=‘{0}‘ and PassWord=‘{1}‘ ", UserName, Password));
24                 if (list.Count>=1)
25                 {
26                     context.Session["LoginUser"] = list[0];
27                     context.Response.Write("ok");
28                 }
29                 else
30                 {
31                     context.Response.Write("登陆失败");
32                 }
33             }
34
35
36         }
37
38         public bool IsReusable
39         {
40             get
41             {
42                 return false;
43             }
44         }

需要注意的是,因为在一般处理程序中使用了Session,所以在这个类实现的接口需要加上IRequiresSessionState这个接口

时间: 2024-11-13 07:55:23

异步初体验的相关文章

【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验

----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafka初体验 2.1 环境准备 2.2 Kafka小试牛刀 2.2.1单个broker初体验 2.2.2 多个broker初体验 2.3 Kafka分布式集群构建 2.3.1 Kafka分布式集群构建 2.3.2 Kafka主题创建 2.3.3 生产者生产数据 2.3.4消费者消费数据 2.3.5消息的

百度EChart3初体验

由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详细.大家可以去看下.大概了解下用法就OK. 百度ECharts 3:http://echarts.baidu.com/index.html 其实还有很多,可以到官网中找. 下面是我进行操作的步奏,大家可以看下,做个参考. ECharts初体验—01... 需要到官网下载最新的版本的js文件(完整版)

PHP协程初体验

PHP协程初体验 By warezhou 2014.11.24 上次通过C扩展为PHP添加coroutine尝试失败之后,由于短期内啃下Zend可能性几乎为零,只能打语言原生能力的主意了.Google之后发现,PHP5.5引入了Generator和Coroutine新特性,于是才有了本文的诞生. 背景阅读 <当C/C++后台开发遇上Coroutine> http://blog.csdn.net/cszhouwei/article/details/14230529 <一次失败的PHP扩展开

springboot+支付宝完成秒杀项目的初体验

springboot+支付宝完成秒杀项目的初体验 思考的问题: 首先是秒杀的商品查询,考虑到是热点数据,所以写一个接口读取当日批次的秒杀商品到redis中(那么接下来对商品的操作都放入redis中). 当用户抢购商品时,考虑到的是是否在秒杀时间段内以及商品是抢完的问题.首先需要判断该商品是否在秒杀时间内,然后要查询该商品数量是否足够.当然这些还不够,还要有为了防止高并发的解决方案: 对用户限流:对恶意请求通过ip设置访问次数,超过次数则抛出异常. 利用消息队列的异步请求来削峰. 利用redis做

Python 3.8.0 正式版发布,新特性初体验 全面介绍

Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PEP 572: Assignment Expressions 新增一种新语法形式::=,又称为"海象运算符"(为什么叫海象,看看这两个符号像不像颜表情),如果你用过 Go 语言,应该对这个语法非常熟悉. 具体作用我们直接用实例来展示,比如在使用正则匹配时,以往版本中我们会如下写: impor

用puppeteer爬取网页数据初体验

用puppeteer爬取网页数据 业务需求,页面需要显示很多链接列表,像这样的. 我问项目经理要字典表,他笑咪咪地拍着我的肩膀说:"这边有点忙,要不按照这个自己抄一下吧". emmm- 我看了一下,数据大概有七八百条,一个一个录入,那不得搞到地老天荒.海枯石烂. 心口一股燥热,差点就要口吐莲花,舌吐芬芳了- 转念一想,做人要儒雅随和,念在平时没少蹭吃蹭喝的份上,咱先弄一下吧. 可是怎么弄呢? 一个一个输入是不可能的,我们需要录入每个组的标题.标题下的名称和链接,这是需要看网页源码,效率

erlang 初体验

最近测试了一下 erlang的坑... 如不出意外.... 大家第一眼看到这语法... 心里第一句一定是"我擦.这TM都是啥!!!!!" 没有变量!!! 没有结构体!!! 没有循环!!! 好吧,至少我是这样想的. 找了半天..连个if也不知道怎么写.. 这记录一些基本常识.. -module(module_name)  %%定义模块 括号内的要和文件名相同. -export([fun1/1 fun2/2]) %%这里是导出2个函数对外使用  函数名/参数名. 一个简单的函数定义如下 f

linux初体验

第一次听到linux这个'词语'是在一次偶然的朋友聊天中朋友提到的,之前压根没听到过'这个东西',所以我可以说是个linux的新新手,菜鸟都不算. 截至到目前,我已经开始linux系统运维学习有差不多10天时间了.在没接触linux之前,我对它的认识仅仅是:它是个计算机系统.决定学习linux系统运维之前,自我以为运维应该是对系统的一些日常维护之类的,不会很难的东西,我更希望运维是个不难的东西,我个人很笨,对难的东西可能接受的很慢,所以我愿意认为运维是很简单的,这样我就可以轻轻松松的掌握运维相关

Java8初体验(二)Stream语法详解

原文链接:http://ifeve.com/stream/ 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel aggregate operations. 我们来解读一下上面的那句话: Stream是元素的集合,这点让Stream看起来用些类似Iterator: 可以支持顺序和并行的对原Stream进行汇聚的操作: 大家可以把Stream当成一个高级版本的