异步请求

1、什么是?

原理性。

  1. $.ajax({               ----jQuery中封装好的异步请求
  2. type:"post",
  3. url:"add.do",
  4. cache:"false",
  5. dataType:"json",
  6. success:function(msg){
  7. //请求成功后执行的语句。
  8. }
  9. });

没有封装的情况下的异步请求。

ajax=异步(asynchronours) 的  javaScript and  xml

本质: 异步请求不是语言,创建更好,更快以及交互性更强的web应用。

实质就是javaScript技术


1、什么是异步?

Asynchronous:是不是一门语言,而是为了解决一个问题所出现的技术, 为了创建更好,更快,交互性更强的web应用。

2、异步和同步?

进程

线程同步:

多个线程公用一个资源-----临界资源。

解决出现的这种问题的技术------线程同步。

int count=1; --k8554--5--14

public void  maipiao(){

if(count>0){

//允许买-----程序在处理数据的时候,

需要时间1秒。

count--;

}

}

问题:为什么需要线程同步这个技术?

线程异步:

因为线程的异步性,导致了需要线程同步技术。

两个人可以同步干一件事情,异步。

异步:两个人都有权操作同一个资源。

网页中的同步和异步:

请求:用户请求----服务器---解析请求---查----把结果集转变成字节码--响应--浏览器解析,显示。---正在呈现:正在接收响应,--- 等待呈现:白屏

3、异步出现的意义?

用户体验的角度:

同步:当响应的呈现之前,页面的状态是白色,处于半呈现状态。第一个请求在没有响应结束之前,用户点击第二个。

异步:2005年的时候,异步出名---google suggest 两个请求同步走,互不干涉。

异步时空:注册--

特点:局部刷新数据,同步异步请求,创建快速交互页面。

总结:是一个实现交互性更强的技术实现了局部刷新数据的功能。

4、代码?

XMLHttpRquest对象可以实现异步请求的发送。

主流浏览器大部分都支持该对象。

主流:IE,火狐,chrome,opera,safari。。。

IE5,6---不支持该对象。

IE5,6:ActiveXObjecct对象发送异步请求。

使用异步请求的步骤:

第一步:创建XMLHttpRequest  xhr引擎对象

var xhr;

if(window.XMLHttpRequest){

xhr=new XMLHttpRequest();      //判断所使用的游览器

}else{

xhr=new ActiveXObject("Microsoft.XMLHTTP");       //IE浏览器使用的对象

}

第二步:构建异步请求:

url="add.do?user_id=1001&user_name=汤晓春"+Math.random();  //减少缓存

xhr.open("get/post",url,true/false);

什么情况下用get,什么情况下用post

第三步:设置服务器处理返回结果方法。

xhr.readyState(返回服务器响应用户的状态)

0:请求未初始化,

1:与服务器建立连接,

2:接收开始,

3:处理中,

4:处理完毕。

xhr.status==200/404

if(xhr.readyState==4&&xhr.status==200){

//程序返回的结果

xhr.responseText:response.getWrite().print("1");//得到String类型的返回值。

xhr.responseXML:得到xml样式的返回值。需要特殊的方式解析。

if(1){

}else{

}

}

第四步:发送请求

xhr.send(String);String 用户post请求。

案例1:判断注册的用户名,是否已经被使用了。使用了提示使用了,红色。否则:可以用。绿色。

4、注意点

1、ajax也可以发送同步请求,实质上没有什么意义?

2、在发送前就知道怎么回来,去哪里。谁发送,谁接受。

代码案例部分(注册界面):

< script type= "text/javascript" >
      var xhr;

function checked1() {
            //创建异步引擎对象;
            var username=document.getElementById("username" ).value;
            if (window.XMLHttpRequest) {

xhr = new XMLHttpRequest();
           } else if (window.ActiveXObject) {

xhr = new ActiveXObject( "Microsoft.XMLHTTP" );
           }
            //构建异步请求
            var url = "vali.do?username=" + username;
           xhr.open( "get", url, true);

//处理服务器返回结果方法
           xhr.onreadystatechange = chuli;

//发送异步请求
           xhr.send( null);
     }

function chuli() {
            if (xhr.status == 200 && xhr.readyState == 4) {
                 var v = xhr.responseText;
                 if (v == "0") {
                     document.getElementById( "msg").innerHTML = ("该用户名可用" );
                     document.getElementById( "msg").style.color = "green" ;
                } else if (v == "1") {
                     document.getElementById( "msg").innerHTML = ("该用户名不可用" );
                     document.getElementById( "msg").style.color = "red" ;
                }
           }
     }
</ script>

</ head>
< body>
      <input type = "text" id= "username" onkeyup= "checked1()" />
      <span id = "msg"></ span>< br>
      <input type = "submit"  value= "登录">
</ body>
</ html>

 

 

时间: 2024-10-11 21:28:21

异步请求的相关文章

学习笔记12JS异步请求

*一般用JS来监听按钮事件,都应该先监听页面OnLoad事件. *Js写在哪里,就会在页面解析到哪里执行. 异步请求:所谓异步请求,就是使用JS来监听按钮点击事件,并且发送请求,等到回复后,再使用JS来进行页面跳转,或动态改变页面.使用场合:当请求是ashx是,都可以使用异步方法,页面就无需刷到ashx的一个空白页面或者不用于展示的页面了. *使用jquery发送异步请求:$("#按钮ID").Click(fuction(){ $.get( "页面URL.ashx"

jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)

1.使用load()方法异步请求数据 使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url,[data],[callback]) 参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数. 2.使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数据,并对获取的数据进行解析,显示在页面中,它的

ajax 异步请求四个步骤

ajax异步请求详解 ajxa定义:异步的JavaScript和xml 1.XMLHttpRequst的出现才有了异步处理 2.创建XmlHttpRequest对象 var request=new XMLHttpRequest(); 注意:如果要兼容IE6以下浏览器则需要编写如下代码 var request; if(window.XMLRequest){ request=new XMLRequestHttpRequest();  //IE7.IE8.360等 }else{ request=new

Ajax异步请求(二)

业精于勤,荒于嬉:行成于思,毁于随. ----致自己 目录: 二.jQuery四种常用的Ajax请求方式简介 1.$.ajax() 2.$.get() 3.$.post() 4.$.getJSON() ==================1.$.ajax()======================== jQuery在异步请求方面封装的较好,直接使用Ajax比较麻烦,jQuery大大简化了我们的使用,不用考虑浏览器之间的差异了. $.ajax()是jQuery底层ajax的实现,$.get()

js方式的异步请求

1 有的企业要求你要会写, 2 *1. 异步请求的get方式 3 代码: 4 //创建一个XmlHttpRequest请求 5 function createXmlHttpRequest(){ 6 //声明一个请求,并是设置为空 7 var xhr=null; 8 try{ 9 //兼容IE浏览器的请求 10 xhr=new ActiveXObject("microsoft.xmlhttp"); 11 }catch(e){ 12 try{ 13 //其他浏览器的请求对象 14 xhr=

让Flask处理异步请求

今天意外在网上看到一篇文章,写到 后端使用gunicorn+flask的方式,刚开始就直接使用flask跑,但是有一次就出现502了,发现由于flask是单进程处理请求的,不像Tornado的异步,同时访问的人数稍微过多,就会出现阻塞的情况,导致nginx出现502的问题 于是开始寻找flask处理异步请求的解决方案 首先 我不了解tornado的异步处理方式,有时间我会去了解一下 其次,我在实验里犯了一个错误,我随手用sleep(100)去做阻塞,造成的结果是整个进程被我挂起了,其实我只需要在

iOS ASI--同步和异步请求

1.添加ASI框架到项目 1>ASI框架在判断网络状态时,依赖于Reachability,可以在苹果的官方文档里找到,也可以ASI的Sample例子里找到. 2>添加ASI所依赖的类库: SystemConfiguration是Reachability所需要的类库 3>如果是ARC项目,还要在Targets-Compile Sources-Compiler Flags里把ASI的.m文件,都置为 -fno-objc-arc 4>最后编译程序,看成功否 2.发起请求 2.1同步请求

IOS之同步请求、异步请求、GET请求、POST请求(整理复习))

1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3.GET请求,将参数直接写在访问路径上.操作简单,不过容易被外界看到,安全性不高,地址最多255字节: 4.POST请求,将参数放到body里面.POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面,不易被捕获. 1.     同

ajax异步请求

随便写写: 异步请求,相当于只是局部向浏览器发送请求,局部刷新的意思. 请求的方式 有两大类分为get: post. 自己封装的ajax var AjaxHelp = { ///返回创建的异步对象 GetReques: function () { var xlm = new XMLHttpRequest(); return xlm; }, ///异步对象的请求               //请求方式,地址,参数,回调函数 ProcessReques: function (methor, url

异步请求与异步刷新

异步请求 [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { //可以看data里的值 NSLog(@"data = %@",[[NSString alloc] initWithData:data