精华内容
下载资源
问答
  • 异步的作用

    2018-08-31 16:28:00
    有时服务器需要执行很耗时操作,这个操作结果并不需要返回给客户端 转载于:https://www.cnblogs.com/xiaobiaomei/p/9566532.html

    有时服务器需要执行很耗时的操作,这个操作的结果并不需要返回给客户端

    转载于:https://www.cnblogs.com/xiaobiaomei/p/9566532.html

    展开全文
  • ajax的异步作用

    2021-02-18 10:08:49
    AJAX 指异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 XMLHttpRequest 对象如果要用于 AJAX 话,其 open() 方法 async 参数必须设置为 true: xmlhttp.open("GET","ajax_test.asp",true)...

    AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。

    XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true:

    xmlhttp.open("GET","ajax_test.asp",true);

    对于 web 开发人员来说,发送异步请求是一个巨大的进步。很多在服务器执行的任务都相当费时。AJAX 出现之前,这可能会引起应用程序挂起或停止。

    通过 AJAX,JavaScript 无需等待服务器的响应,而是:

    • 在等待服务器响应时执行其他脚本
    • 当响应就绪后对响应进行处理

    相关资料:https://www.w3school.com.cn/ajax/index.asp

    展开全文
  • Redux启动 具有异步副作用的模块化引导程序。... 异步的作用-没有脑子异步有副作用的和。 例子: 示例。 。 简单的。 文献资料 有关更多详细信息,请参见。 入门 安装 npm install redux-boot --save 基
  • 主要介绍了异步JS框架的作用以及使用方法
  • 初步理解Ajax的异步作用

    千次阅读 2018-09-13 16:32:07
    Ajax的作用是可以使网页实现异步的更新,用通俗的话来讲就是在不需要重新加载整个页面内容的情况下,也可以对网页的部分内容进行更新操作,也可以理解局部刷新操作。 传统没有使用Ajax技术的web页面如果需要更新页.....

    理解Ajax

    ajax是什么?

    • Ajax=“Asynchronous javascript Adn XML”(意思就是异步的JavaScript和XML)。
    • Ajax的作用是可以使网页实现异步的更新,用通俗的话来讲就是在不需要重新加载整个页面内容的情况下,也可以对网页的部分内容进行更新操作,也可以理解局部刷新操作。
    • 传统没有使用Ajax技术的web页面如果需要更新页面的某部分内容的时候,必须要重新加载整个网页才能够实现更新。

    ajax原理分析

    ajax引擎工作过程图:

    ajax的使用

    原生ajax使用的四个步骤:

    1)创建Ajax引擎对象
    2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)
    3)绑定提交地址
    4)发送请求

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>原生Js的Ajax</title>
    <script type="text/javascript">
    function fn1() {
    //1.创建ajax引擎对象 ---所有操作都是通过引擎对象
    var xmlHTTP =new XMLHttpRequest();
    //2.绑定监听 ---监听自己服务器是否已经返回数据
    xmlHTTP.onreadystatechange = function () {
    //5.接受相应的数据
    if (xmlHTTP.readyState==4&&xmlHTTP.status==200) {
    var res = xmlHTTP.responseText;
    // alert(res);
    document.getElementById("span1").innerHTML=res;
    }
    }
    //3.绑定地址
    xmlHTTP.open("GET", '/ajaxServlet?name="zhang san feng', true);
    //4.发送请求
    xmlHTTP.send();
    }
    function fn2() {
    //1.创建ajax引擎对象 ---所有操作都是通过引擎对象
    var xmlHTTP =new XMLHttpRequest();
    //2.绑定监听 ---监听自己服务器是否已经返回数据
    xmlHTTP.onreadystatechange = function () {
    //5.接受相应的数据
    if (xmlHTTP.readyState==4&&xmlHTTP.status==200) {
    var res = xmlHTTP.responseText;
    // alert(res);
    document.getElementById("span2").innerHTML=res;
    }
    }
    //3.绑定地址
    xmlHTTP.open("GET", '/ajaxServlet?name=lisi', false);
    //4.发送请求
    xmlHTTP.send();
    }
    </script>
    </head>
    <body>
    <input type="button" value="异步访问服务器" onclick="fn1()">
    <span id="span1">1</span>
    <hr>
    <input type="button" value="同步访问服务器" onclick="fn2()">
    <span id="span2">1</span><hr>
    <input type="button" value="测试按钮" onclick="alert()">
    </body>
    </html>
    

    参考的服务器java-servlet代码

    package ajax;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet(name = "AjaxServlet")
    public class AjaxServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // response.getWriter().write("zhang san");
    
    String name = request.getParameter("name");
    response.getWriter().write(Math.random()+" "+name);
    try {
    Thread.sleep(5000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    
    }
    }
    
    

    实现结果:

    用jQuery来使用ajax技术

    对于现在的我们来说,以后要从事开发,很少再使用原生的JavaScript中的ajax技术了,大多是使用jQuery中的ajax技术。

    在这里我推荐下新浪的cnd…因为我使用其他的cnd引入jQuery文件时大多都会显示失败,或者加载速度很慢

    <!-- 新浪cdn方便使用 -->
    <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js">
    </script>
    

    jQuery的三种方式:

    第一种GET方式

    function f1() {//四个参数,分别用逗号分开
    $.get(
    "/ajaxServlet2", //1、url地址
    {
    "name":"zhangsan","age":25 //2、请求参数
    },
    function (date) {//3、执行成功后的回调函数
    alert(date);
    },
    "text"//4、返回参数的类型
    );
    }
    

    第二种Post方式

    function f2() {
    $.post(
    "/ajaxServlet2",// url
    {
    "name":"zhangsan","age":25 //2、请求参数
    },
    function (date) {
    alert(date.name)
    },
    "json"
    );
    }
    

    第三种是ajax方式

    function f3() {
    $.ajax({
    url:"/ajaxServlet2", //路径
    async:true,//是否异步,可以不设置,默认为异步,
    type:"POST",//传递的方式
    data:{"name":"lucy","age":18},//需要传递的数据
    success:function (data) {//执行成功后执行的函数
    alert(data.name)
    },
    error:function () {//执行失败后返回的函数
    alert("请求失败")
    },
    dataType:"json"//返回数据的类型
    })
    }
    

    一个jQuery使用ajax的实例:

    前端代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 新浪cdn方便使用 -->
    <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js">
    </script>
    <script type="text/javascript">
    function f1() {//四个参数,分别用逗号分开
    $.get(
    "/ajaxServlet2", //1、url地址
    {
    "name":"zhangsan","age":25 //2、请求参数
    },
    function (date) {//3、执行成功后的回调函数
    alert(date);
    },
    "text"//4、返回参数的类型
    );
    }
    function f2() {
    $.post(
    "/ajaxServlet2",// url
    {
    "name":"zhangsan","age":25 //2、请求参数
    },
    function (date) {
    alert(date.name)
    },
    "json"
    );
    }
    function f3() {
    $.ajax({
    url:"/ajaxServlet2", //路径
    async:true,//是否异步,可以不设置,默认为异步,
    type:"POST",//传递的方式
    data:{"name":"lucy","age":18},//需要传递的数据
    success:function (data) {//执行成功后执行的函数
    alert(data.name)
    },
    error:function () {//执行失败后返回的函数
    alert("请求失败")
    },
    dataType:"json"//返回数据的类型
    })
    }
    </script>
    </head>
    <body>
    <input type="button" value="GET访问服务器端" onclick="f1()">
    <input type="button" value="GET访问服务器端2" onclick="f2()">
    <input type="button" value="AJAX范文服务器3" onclick="f3()">
    </body>
    </html>
    

    后端代码:

    package ajax;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet(name = "AjaxServlet2")
    public class AjaxServlet2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter("name");
    String age = request.getParameter("age");
    System.out.println(name + " " + age);
    // response.getWriter().write("successfully.....");
    //Json格式
    response.setContentType("text/html;charset=UTF-8");
    response.getWriter().write("{\"name\":\"汤姆\",\"age\":22}");
    }
    }
    
    
    展开全文
  • 异步作用域、闭包

    2019-11-01 18:26:00
    for(var i=0;...settimeout是异步执行,10ms后往任务队列里面添加一个任务,只有主线上全部执行完,才会执行任务队列里任务,当主线执行完成后,i是4,所以此时再去执行任务队列里任务时,i全...

     

    for(var i=0;i<=3;i++){ setTimeout(function() {  console.log(i)  }, 10);}

    答案:打印4次4

    这道题涉及了异步、作用域、闭包

    settimeout是异步执行,10ms后往任务队列里面添加一个任务,只有主线上的全部执行完,才会执行任务队列里的任务,当主线执行完成后,i是4,所以此时再去执行任务队列里的任务时,i全部是4了。对于打印4次是:

     每一次for循环的时候,settimeout都执行一次,但是里面的函数没有被执行,而是被放到了任务队列里面,等待执行,for循环了4次,就放了4次,当主线程执行完成后,才进入任务队列里面执行。

       (注意:for循环从开始到结束的过程,需要维持几微秒或几毫秒。)

    当我把var 变成let 时

    for(let i=0;i<=3;i++){ setTimeout(function() {  console.log(i)  }, 10);}

    打印出的是:0,1,2,3

    当解决变量作用域,

    因为for循环头部的let不仅将i绑定到for循环快中,事实上它将其重新绑定到循环体的每一次迭代中,确保上一次迭代结束的值重新被赋值。setTimeout里面的function()属于一个新的域,通过 var 定义的变量是无法传入到这个函数执行域中的,通过使用 let 来声明块变量,这时候变量就能作用于这个块,所以 function就能使用 i 这个变量了;这个匿名函数的参数作用域 和 for参数的作用域 不一样,是利用了这一点来完成的。这个匿名函数的作用域有点类似类的属性,是可以被内层方法使用的。

    查了一下百度的一个答案:

    setTimeout是一次执行函数,这里是10ms后执行,仅仅执行一次;for(var i=0;i<=3;i++),i的每次取值都是执行setTimeout这个函数,并没有执行setTimeout里面的function(即闭包函数),setTimeout里面的function是有setTimeout的定时触动的,也就是10ms后执行,也就是说i从0~3时,一共执行了4次的setTimeout()函数,此时的i的值是4,由于for语句的执行速度远小于1秒,所以,1秒后,由setTimeout()函数定时触动的闭包函数function()开始执行,alert(i);i的值已经是4了,所以相继打印4次i.

    展开全文
  • 主要介绍了JavaScript异步编程中jQuery的promise对象的作用,同时也谈到了js的Dojo框架中promise模式的实现,需要的朋友可以参考下
  • 异步作用域,闭包

    2018-03-08 16:38:36
    }答案:打印4次4这道题涉及了异步作用域、闭包settimeout是异步执行,10ms后往任务队列里面添加一个任务,只有主线上全部执行完,才会执行任务队列里任务,当主线执行完成后,i是4,所以此时再去执行任务队列...
  • 主要介绍了jQuery的promise与deferred对象在异步回调中的作用,需要的朋友可以参考下
  • 针对某些客户端的请求,在服务端可能需要针对这些请求做一些附属的事情,这些事情其实用户并不关心或者用户不需要立即拿到这些事情的处理结果,这种情况就比较适合用异步的方式处理这些事情。 作用 缩短接口响应...
  • Ajax请求中属性async(同步异步)作用

    千次阅读 2016-12-12 10:12:20
    在jqueryajax中如果我们希望实现同步或者异步我们可以直接设置async发生为真或假即可true false $.ajax({ async: false, type : "GET", url : 'tet.php', complete: function(msg){ alert('complete
  • 题目: for(var i=0;i<=3;i++){ setTimeout(function...这道题看似简单,其实涉及了js中关于异步作用域、闭包问题 首先settimeout是异步执行函数,执行settimeout函数时,会在主线任务外增加一个新任务队...
  • 题目如下: for (var i = 0; i &amp;lt; 3; i++) { setTimeout(function() { console.log(i); }, 0); console.log(i);...异步 ...作用域 闭包 我们来简化此题: setTimeout(func...
  • javascript的异步处理应用异步的作用回调方式的异步实现promise及async/await语法 异步的作用 本文力求简洁明了,只说自己的理解,只说应用,不说原理,水平有限,欢迎指正。 同步和异步都是为了处理并发,同步就像...
  • 简单而强大redux中间件,支持异步作用(以及更多) Redux中间件将使您能够: 创建具有副作用的动作,该动作将针对不同作用结果分配不同动作 创建具有异步和同步副作用的动作 向您的异步操作添加挂钩(回...
  • 下面小编就为大家带来一篇浅谈Jquery中Ajax异步请求中的async参数的作用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 前言: 相信大部分Java程序猿之前所接触到业务都是使用同步方式来实现交互,但是有时候可能接触到业务不是同步,需要异步实现。例如和第三方系统进行交互时候,我们可以采用多线程,消息队列方式...
  • SpringBoot异步任务, 以及带返回值的异步任务(@Async 不起作用的原因) 第一部分: 无返回值异步任务 当没有加入异步任务时候,我们创建一个service ,里面方法需要等待3秒才能完成, controller层写一个测试方法调用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,907
精华内容 3,162
关键字:

异步的作用