精华内容
下载资源
问答
  • 1.//异步ajax调用 2./** 3. * 异步调用ajax,成功后返回值,作为回调函数的参数 调用失败会提示 4. * 5. * @param {} 6. * urlStr 7. * @param {} 8. * paramsObj 9. * @param {} 10. * callbackFunc 11. */ 12....

    1.//异步ajax调用 
    2./**
    3. * 异步调用ajax,成功后返回值,作为回调函数的参数 调用失败会提示
    4. * 
    5. * @param {}
    6. *            urlStr
    7. * @param {}
    8. *            paramsObj
    9. * @param {}
    10. *            callbackFunc
    11. */ 
    12.function ajaxCall(urlStr, paramsObj, callbackFunc) { 
    13.    Ext.Ajax.request({ 
    14.                url : urlStr, 
    15.                params : paramsObj, 
    16.                method : 'POST', 
    17.                success : function(response) { 
    18.                    if (callbackFunc) { 
    19.                        var result = Ext.util.JSON 
    20.                                .decode(response.responseText); 
    21.                        var cbfn = callbackFunc.createCallback(result); 
    22.                        cbfn(); 
    23.                    } 
    24.                }, 
    25.                failure : function() { 
    26.                    Ext.Msg.alert("提示", "方法调用失败"); 
    27.                } 
    28.            }); 
    29.} 
    30.//同步ajax调用 
    31./**
    32. * 同步ajax调用 返回json Object
    33. * 
    34. * @param {}
    35. *            urlStr
    36. * @param {}
    37. *            paramsStr 为字符串键值对形式“key=value&key2=value2”
    38. * @return {} 返回json Object
    39. */ 
    40.function ajaxSyncCall(urlStr, paramsStr) { 
    41.    var obj; 
    42.    var value; 
    43.    if (window.ActiveXObject) { 
    44.        obj = new ActiveXObject('Microsoft.XMLHTTP'); 
    45.    } else if (window.XMLHttpRequest) { 
    46.        obj = new XMLHttpRequest(); 
    47.    } 
    48.    obj.open('POST', urlStr, false); 
    49.    obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    50.    obj.send(paramsStr); 
    51.    var result = Ext.util.JSON.decode(obj.responseText); 
    52.    return result; 
    53.} 

    转载于:https://www.cnblogs.com/dwfbenben/archive/2012/04/14/2447821.html

    展开全文
  • ajax异步调用

    千次阅读 2017-12-22 01:20:46
    2、同步和异步 异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的。 举个例子来说同步和异步,同步就好像排队体...

     

     

    1、名称:

    ajax 的全称是AsynchronousJavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式。

    2、同步和异步

     

    异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的。

    举个例子来说同步和异步,同步就好像排队体检,得做完一项再进行下一项,而异步相当于vip会员,体检完一项直接进行下一项,不需要排队。

    3、ajax所包含的技术

     

     大家都知道ajax并非一种新的技术,而是几种原有技术的结合体。它由下列技术组合而成。

       1.使用CSS和XHTML来表示。

       2. 使用DOM模型来交互和动态显示。

       3.使用XMLHttpRequest来和服务器进行异步通信。

       4.使用javascript来绑定和调用。

    在上面几中技术中,除了XmlHttpRequest对象以外,其它所有的技术都是基于web标准并且已经得到了广泛使用的,XMLHttpRequest虽然目前还没有被W3C所采纳,但是它已经是一个事实的标准,因为目前几乎所有的主流浏览器都支持它。

    ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。

    XMLHttpRequest是ajax的核心机制,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

    4、XMLHttpRequest的工作原理。

      首先,我们先来看看XMLHttpRequest这个对象的属性。

      它的属性有:

      onreadystatechange  每次状态改变所触发事件的事件处理程序。

      responseText     从服务器进程返回数据的字符串形式。

      responseXML    从服务器进程返回的DOM兼容的文档数据对象。

      status           从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)

      status Text       伴随状态码的字符串信息

      readyState       对象状态值

    0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)

    1 (初始化) 对象已建立,尚未调用send方法

    2 (发送数据) send方法已调用,但是当前的状态及http头未知

    3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,

    4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据

     

     但是,由于各浏览器之间存在差异,所以创建一个XMLHttpRequest对象可能需要不同的方法。这个差异主要体现在IE和其它浏览器之间。下面是一个比较标准的创建XMLHttpRequest对象的方法。

     

    [javascript] view plain copy

    1. function CreateXmlHttp()  
    2.   {  
    3.   //非IE浏览器创建XmlHttpRequest对象  
    4.    if(window.XmlHttpRequest)  
    5.    {  
    6.     xmlhttp=new XmlHttpRequest();  
    7.    }  
    8.    //IE浏览器创建XmlHttpRequest对象  
    9.     if(window.ActiveXObject)  
    10.    {  
    11.    try  
    12.    {  
    13.     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");      
    14.    }  
    15.    catch(e)  
    16.    {  
    17.    try{  
    18.     xmlhttp=new ActiveXObject("msxml2.XMLHTTP");  
    19.     }  
    20.     catch(ex){}  
    21.    }  
    22.    }  
    23.   } </span></span>  

     

    [javascript] view plain copy

    1. function Ustbwuyi()  
    2.    {  
    3.     var data=document.getElementById("username").value;    
    4.         CreateXmlHttp();  
    5.         if(!xmlhttp)  
    6.         {  
    7.          alert("创建xmlhttp对象异常!");  
    8.          return false;  
    9.         }     
    10.         xmlhttp.open("POST",url,true); //设置请求方式为POST,设置请求的URL,设置为异步提交     
    11.        //将方法地址复制给onreadystatechange属性  
    12.         xmlhttp.onreadystatechange=function()  
    13.         {    
    14.          //Ajax引擎状态为成功  
    15.          if(xmlhttp.readyState==4)  
    16.            {  
    17.            document.getElementById("user1").innerHTML="数据正在加载...";  
    18.              if(xmlhttp.status==200)//HTTP协议状态为成功  
    19.              {  
    20.               document.write(xmlhttp.responseText);  
    21.              }  else{  
    22.                  alert("请求失败,错误码="+xmlhttp.status);  
    23.              }     
    24.            }  
    25.          }  
    26.         xmlhttp.send();//将设置信息发送到Ajax引擎  
    27.    }  

     

    首先创建一个XMLHttpRequest对象,之后javaspcript方法检查XMLHttpRequest的整体状态并且保证它已经完成(readyStatus=4),即数据已经发送完毕。然后根据服务器的设定询问请求状态,如果一切已经就绪(status=200),那么就执行下面需要的操作。

    对于XmlHttpRequest的两个方法,open和send,其中open方法指定了:

    a、向服务器提交数据的类型,即post还是get。

    b、请求的url地址和传递的参数。

    c、传输方式,false为同步,true为异步。默认为true。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作。我们需要根据实际需要来指定同步方式,在某些页面中,可能会发出多个请求,甚至是有组织有计划有队形大规模的高强度的request,而后一个是会覆盖前一个的,这个时候当然要指定同步方式。

    之后调用Send(content)方法用来发送请求。

     

    send方法向服务器发出请求,如果采用异步方式,该方法会立即返回。

    content可以指定为null表示不发送数据,其内容可以是DOM对象,输入流或字符串。

    通过这个示例我们看到Ajax 基本上就是把 JavaScript 技术和XMLHttpRequest对象放在 Web 表单和服务器之间。当用户向服务器请求时,数据发送给一些 JavaScript 代码而不是直接发送给服务器。JavaScript代码在幕后发送异步请求,然后服务器将数据返回 JavaScript 代码,后者决定如何处理这些数据,它可以迅速更新表单数据。这就是Ajax的原理所在。

    5、用图来理解Ajax原理


    6、ajax的优点

     

    Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点:

       1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。

      2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。

      3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

      4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

    7、ajax的缺点

     

    下面所阐述的ajax的缺陷都是它先天所产生的。

       1、ajax干掉了back按钮,即对浏览器后退机制的破坏。后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作。这是ajax所带来的一个比较严重的问题,因为用户往往是希望能够通过后退来取消前一次操作的。那么对于这个问题有没有办法?答案是肯定的,用过Gmail的知道,Gmail下面采用的ajax技术解决了这个问题,在Gmail下面是可以后退的,但是,它也并不能改变ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)

    但是,虽然说这个问题是可以解决的,但是它所带来的开发成本是非常高的,和ajax框架所要求的快速开发是相背离的。这是ajax所带来的一个非常严重的问题。

     2、安全问题

    技术同时也对IT企业带来了新的安全威胁,ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于credentials的安全漏洞等。

      3、对搜索引擎的支持比较弱。

      4、破坏了程序的异常机制。至少从目前看来,像ajax.dll,ajaxpro.dll这些ajax框架是会破坏程序的异常机制的。关于这个问题,我曾经在开发过程中遇到过,但是查了一下网上几乎没有相关的介绍。后来我自己做了一次试验,分别采用ajax和传统的form提交的模式来删除一条数据……给我们的调试带来了很大的困难。

     5、另外,像其他方面的一些问题,比如说违背了url和资源定位的初衷。例如,我给你一个url地址,如果采用了ajax技术,也许你在该url地址下面看到的和我在这个url地址下看到的内容是不同的。这个和资源定位的初衷是相背离的。

     6、一些手持设备(如手机、PDA等)现在还不能很好的支持ajax,比如说我们在手机的浏览器上打开采用ajax技术的网站时,它目前是不支持的,当然,这个问题和我们没太多关系。

    8、ajax的几种框架

     

     目前我们采用的比较多的ajax框架主要有ajax.dll,ajaxpro.dll,magicajax.dll 以及微软的atlas框架。Ajax.dll和Ajaxpro.dll这两个框架差别不大,而magicajax.dll只是封装得更厉害一些,比如说它可以直接返回DataSet数据集,前面我们已经说过,ajax返回的都是字符串,magicajax只是对它进行了封装而已。但是它的这个特点可以给我们带来很大的方便,比如说我们的页面有一个列表,而列表的数据是不断变化的,那么我们可以采用magicajax来处理,操作很简单,添加magicajax之后,将要更新的列表控件放在magicajax的控件之内,然后在pageload里面定义更新间隔的时间就ok了,atlas的原理和magicajax差不多。但是,需要注意的一个问题是,这几种框架都只支持IE,没有进行浏览器兼容方面的处理,用反编译工具察看他们的代码就可以知道。

     除了这几种框架之外,我们平时用到的比较多的方式是自己创建xmlHttpRequest对象,这种方式和前面的几种框架相比更具有灵活性。另外,在这里还提一下aspnet2.0自带的异步回调接口,它和ajax一样也可以实现局部的无刷新,但它的实现实际上也是基于xmlhttprequest对象的,另外也是只支持IE,当然这是微软的一个竞争策略。

    9.什么是回调

    软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础(引用自网络) 

     
    10、回调函数

    回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事。例如:模块A有一个函数foo,它向模块B传递foo的地址,然后在B里面发生某种事件(event)时,通过从A里面传递过来的foo的地址调用foo,通知A发生了什么事情,让A作出相应反应。 那么我们就把foo称为回调函数。 

    展开全文
  • AJAX异步调用的分层 有四个jsp页面,在index.jsp页面上 要在dataDiv出显示调用的的数据回显到此处,可以让showStudent2.jsp页面的数据回调到此处,$("#dataDiv").load(url)加载,注 var data=$("f")....

    AJAX的异步调用的分层

      有四个jsp页面,在index.jsp页面上

        要在dataDiv出显示调用的的数据回显到此处,可以让showStudent2.jsp页面的数据回调到此处,$("#dataDiv").load(url)加载,注 var data=$("f").serialize()表单数据序列化

     1 <script>
     2      function go(page)
     3      {
     4          $("#current").val(page);
     5          var data = $("#f").serialize(); //  xh=1&xm=yyy&
     6         
     7          var url = "${pageContext.request.contextPath}/showStudent2?"+data;
     8         
     9          $("#dataDiv").load(url);
    10          
    11      }
    12      
    13      go(1);
    14    </script>

    在showStudent2.jsp页面上

    回调之后的显示

    *****使用AJAX批量的修改showStudent.jsp页面上的显示如下

     

    ajax代码

     1      //批量启用
     2      function batchEnable(status)
     3      {
     4            //得到选中id
     5            var ids = "-1";
     6            $(".chk:checked").each(function(){
     7                ids = ids+","+this.value;
     8              
     9            }); 
    10           
    11           var url = '${pageContext.request.contextPath}/changeStatus2';
    12           var data = {ids:ids,status:status};
    13           var callback = function(data)
    14           {
    15              
    16                //修改界面
    17               $(".chk:checked").each(function(i,o){
    18                  
    19                       if (status==1)
    20                       {
    21                            var tr = $(o).parent().parent();
    22                            tr.children("td").eq(4).html("已启用");
    23                             tr.children("td").eq(5).children("button:first").html("禁用");
    24                        }
    25                        else 
    26                      {
    27                            var tr = $(o).parent().parent();
    28                            tr.children("td").eq(4).html("已禁用");
    29                             tr.children("td").eq(5).children("button:first").html("启用");
    30                        }
    31                     
    32               });
    33                 
    34               
    35           }
    36           $.post(url,data,callback);
    37      }
    38      
    39      
    40      function update(xh)
    41      {
    42          var url = '${pageContext.request.contextPath}/toUpdateView/'+xh;
    43          location  = url;
    44 
    45      }

     

    转载于:https://www.cnblogs.com/islandlxl/p/10074347.html

    展开全文
  • AJAX调用和异步

    2016-01-28 05:00:39
    <p>Desired output is a table with two columns for each property (domain, dns, email web) from both url1 and url2. <p>html table:</p> <pre><code><div class= "container_1"> </code></pre> <p></p...
  • 1)创建XMLHttpRequest对象,也就是创建一个异步调用对象. 2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息. 3)设置响应HTTP请求状态变化的函数. 4)发送HTTP请求. 5)获取异步调用返回的数据. 6)...

    1) 创建XMLHttpRequest对象,也就是创建一个异步调用对象.

    2) 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

    3) 设置响应HTTP请求状态变化的函数.

    4) 发送HTTP请求.

    5) 获取异步调用返回的数据.

    6) 使用JavaScriptDOM实现局部刷新.

    转载于:https://www.cnblogs.com/yuzc/p/8869274.html

    展开全文
  • ajax异步调用的底层实现

    千次阅读 热门讨论 2015-10-13 12:10:52
    2、同步和异步 异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的。 举个例子来说同步和异步,同步就
  •  Struts2封装了requestresponse对象,Struts2整合Ajax需要在execute()方法中利用ServletActionContext.getResonse()取得reponse对象,然后构造json对象或者xml对象,将对象输出到流中,然后打回到页面上进行...
  • AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript XML)。它并非一种新的技术,而是以下几种原有技术的结合体。 1) 使用CSSXHTML来表示。 2) 使用DOM模型来交互动态显示。 3) 使用...
  • ajax和json Ajax 同步和异步: a标签是同步,调用完形成新的页面,页面会刷新.原页面在a标签后面的代码将不执行处于等待状态. 而异步请求不会.异步此页面的其他代码会继续执行 应用场景: 用户名是否存在的校验,百度...
  • [size=10] 问题:在一个项目中用Excel组件OWC.Spreadsheet在客户端导出HTML格式的表格为Excel文件,对于数据量... 2、利用类似Ajax请求的机制,异步调用一个导出方法,该方法在导出完毕后回调一个callback方法。 ...
  • 针对非特殊控件使用空的HtmlWriter屏蔽内部的Response.Write1. 发生异步调用时,客户端设置Request头标志为异步调用。 代码大概: this._...2. 控件ScripManager的OnPreRender中,判断若是异步调用,则调用P
  • 异步,则可以在发出功能调用后,不需要得到结果,也可以继续执行后续操作。 可以打开F12直接感受一下 console.log(0); alert(2); console.log(1); // setTimeout就是一个基础的异步操作 setTimeout(() => { ...
  •  1、为项目配置 Tomcat 为 server:    2、导入 mysql的jar包 到项目目录中:   第二步:编码 1、数据库连接类ConnectMysql.java代码: 1 package com.testing.mysql; 2 3 import java.sql....
  • 编程应用背景:  使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample类代码: ... 2 3 public class LoginSample { 4 public LoginSample() { //构造方法 ...
  • promise中调用ajax

    千次阅读 2017-08-25 15:03:24
    Promise是异步里面的一种解决方案,解决了回调嵌套的问题,es6将其进行了语言标准,同意了用法,提供了`promise`对象, promise对象有三种状态:pending(进行中) 、Resolved(已经完成)Rejected(已失败) ES6规定,...
  • 在注册用户等情况下会需要Ajax进行异步验证用户是否存在,而这个验证信息在JAVA中可以放到JSP中,也可以放到servlet类中,而... Ajax的主干内容如下所示: 使用Ajax的主要过程包括1、创建XMLHttpRequest对象,2、设置回
  • 若没有显式命名空间声明,则该部分可以省略 [ClassName]:服务器端Web Service的类名 [MethodName]:定义在服务器端Web Service中的、将要被调用的方法名 param1 param2 … param n:将要调用的方法的参数列表。...
  • Ajax、同步和异步、封装、流程 1.Ajax的作用 实现了在当前页面中显示新的相应内容 2. Ajax的使用流程 创建ajax请求的逻辑代码,并提供给浏览器让用户触发 创建ajax请求的相应处理逻辑代码,并提前给浏览器 注意: ...
  • 实现异步局部刷新Ajax详解【2019】

    千次阅读 2019-06-07 15:12:29
    ajax意为 “Asynchronous Javascript And XML”(异步JavaScriptXML),并不是新的技术,只是把原有的技术,整合到一起而已 1.使用CSSXHTML来表示。 2. 使用DOM模型来交互动态显示。 3.使用XMLHttpRequest...
  • 讲一下第一个页面结构:左边导航栏是<ul><li>数组 ,右边是个div 通过点击左边不同的列表li,动态的调用ajax去获取json数据结合动态导入的html文件(列表结构ul/li),局部刷新展示不同的内容 现在需要的解决方案...
  • Ajax 函数的定义 :Asynchronous JavaScript and XML(异步的 JavaScript XML),无刷新的从服务器读取数据,可以在不重新加载整个网页的情况下,对网页的某部分进行更新,使网页实现异步更新。 交换过程:  ...
  • AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript XML)。它并非一种新的技术,而是以下几种原有技术的结合体。 1) 使用CSSXHTML来表示。 2) 使用DOM模型来交互动态显示。 3) 使用...
  • 异步调用WebService访问数据小结

    千次阅读 2010-04-01 09:53:00
    1. 前台 排除FlexASP(Ajax等)异步访问导致该问题,2. 后台 排除由于数据库访问方式导致该问题,与AdapterCommand访问方式无关; 究其原因,主要是一些CS编程习惯沿用到BS而导致。CS编程经常持
  • Ajax 是什么: 1) 通过异步模式,提升了用户体验 2) 优化了浏览器服务器之间的传输,减少不必要的数据...1) 创建XMLHttpRequest对象,也就是创建一个异步调用对象 2) 创建一个新的HTTP请求,并指定该HTTP请求的方...
  • 调用 window.open 同步和异步指的是: 在点击界面(任意位置)的同时执行 window.open 就是同步方式; 点击界面,执行一个ajax请求或者setTimeout后才执行 window.open 就是异步方式。 异步打开窗口,会被浏览器阻止...
  • 问题描述:在Flex频繁异步调用WebService访问SQL Server数据出现相关错误,类似DataReader未...1. 前台 排除FlexASP(Ajax等)异步访问导致该问题, 2. 后台 排除由于数据库访问方式导致该问题,与A
  • ajax基本调用以及说明

    千次阅读 2021-06-01 00:17:40
    AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScriptXML),是一种创建交互式网页应用的网页开发技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 599
精华内容 239
关键字:

异步调用ajax1和ajax2