美文网首页
js异步和同步

js异步和同步

作者: 喵呜Yuri | 来源:发表于2019-01-23 11:24 被阅读5次

这个ajax是非常常用的一个方法,今天的业务场景很简单:


image.png

1.点击
2.遮障层显示等待转圈圈
3.后台处理完毕todo()并且关闭遮障层
同步: async:false
比较一下区别:

    $("#XXXX").click(function(){
        console.time('aa');
        //需要ajax同步处理
        $.ajax({
           async:XX
        });
     console.timeEnd('aa');
    })

异步:aa: 1.43408203125ms
同步:aa: 2137.023193359375ms
差别还是很大的,来看看执行到success中的时间

    $("#XXXX").click(function(){
        console.time('aa');
        //需要ajax同步处理
        $.ajax({
           async:XX,
            success:function(){
                console.timeEnd('aa');
            }
        });
    })

同步:aa: 2179.932861328125ms
异步:aa: 2254.029052734375ms
没什么差别
然后我用同步执行,然而遮障层打开关闭就有问题了

    $("#XXXX").click(function(){
        //打开遮障层
        console.time('aa');
        //需要ajax同步处理
        $.ajax({
           async:false,
            success:function(){
                console.timeEnd('aa');
                //关闭遮障层
            }
        });
    })

这看起来没有什么问题,按顺序执行,但是显示效果却是:
1.点击----2.(未出现遮障层)---3.等待处理---4.关闭遮障层
全程没有打开遮障层这回事。检查div,发现问题是:
第二步其实执行了,但是因为同步执行ajax而无法去渲染页面。
同理回想同步执行ajax的时候,你会发现页面哪儿你都动不了
如何解决?改成异步执行就好了
问题很简单,但是有时间就要多琢磨,尽量知其然知其所以然比较好

相关文章

  • JS 函数的执行时机

    1.同步和异步的区别 我们都知道JS里面有同步和异步的区别,怎么理解同步和异步呢。一家餐厅吧来了5个客人,同步的意...

  • 【Node.js】读取文件

    在node.js里,读取文件分为 同步读取 和 异步读取。 同步读取: fs.readFileSync() 异步读...

  • 【Node.js】写入文件

    node.js的写入文件和读取文件一样,都是分为同步和异步。 同步写入:fs.writeFileSync() 异步...

  • 简述JS执行机制 Event Loop

    1.同步异步 JS是单线程的,由上至下排队执行任务代码。为了提高JS的性能又区分为 同步任务 和 异步任务。同步任...

  • 异步请求为什么会导致tcp的对头阻塞

    这个异步指的是网络请求不会阻塞其后 js 代码继续执行和浏览器渲染页面其他的部分。 同步和异步 同步和异步关注的是...

  • 同步和异步的理解

    但是js又分为同步和异步,那这里的异步和同步我们应该如何理解呢其实同步和异步,无论如何,做事情的时候都是只有一条流...

  • 【Node.js】删除文件(基础用法)

    node.js删除文件是分为同步和异步。 同步删除文件: fs.unlinkSync() 异步删除文件: fs.u...

  • js同步和异步

    参考1 vue js 实例 结果 f4 f3 f1 f2 setTimeout 是异步的,time == 0 也一样

  • JS同步和异步

    最基础的异步是setTimeout和setInterval函数很常见,但是很少人有人知道其实这就是异步,因为它们可...

  • JS同步和异步

网友评论

      本文标题:js异步和同步

      本文链接:https://www.haomeiwen.com/subject/hpljjqtx.html