zoukankan      html  css  js  c++  java
  • js异步的理解---千呼万唤始出来啊!

    编译完成后(先分配给变量空间和function(){}命名的函数,var = function(){}这种函数也仅仅只是分配了个空间,还没有赋值个函数给他!),调用了若不是undefined就执行,

    js是同步的单线程语言,一般是按照代码的顺序,从上到下的执行已表名要执行的函数.然后,将他们插入队列中(也就是js引擎的执行队列中),按队列顺序执行,.当遇到了异步的调用时候,只有队列中同步函数执行完之后才会执行异步的,如:

    var t = true;
    
    window.setTimeout(function (){
        t = false;
    },1000);
    
    while (t){}
    
    alert('end');
    并不会输出alert(),因为尽管时间到了,同步的没有执行完,异步的也不会执行

    ,如:

    settimeout(),将它在规定事件后,插入对列中,所以,并不会立马在队列中立马执行!

    当遇到click等事件机制时候,绑定的时候,还是同步,但是,当执行的时候就是异步了,任然要在同步代码执行完之后才搞.

    当ajax时候,有一个参数:async,默认的时候是true,也就是说是异步的,在其中返回的return,实际上是接受不到的,因为级别低,最后才执行,但是,我们可以通过async=false来使得其编程同步的.就可以有值了.

    好文章:http://www.tuicool.com/articles/Ebueua

            http://www.zhihu.com/question/21475411

  • 相关阅读:
    JavaScrip中构造函数、prototype原型对象、实例对象三者之间的关系
    (字符缓冲流)文本排序案例
    Annotation注解的应用(打印异常信息)
    Annotation(注解)
    Java关键技术强化
    基本数据类型与引用数据类型的区别
    EKT反射
    bootstrap的概念
    Servlet强化
    java数据库连接池
  • 原文地址:https://www.cnblogs.com/modle-sherlock/p/5261678.html
Copyright © 2011-2022 走看看