zoukankan      html  css  js  c++  java
  • ajax请求的同步异步问题

    前言

    在做项目的过程中遇到一个bug就是:使用了alert语句后,代码才能正确执行,没使用就执行不成功。

    后来我就用把console.log,代码就不能正确执行。

    于是我就去比较了下consol.log和alert有什么不同

    console.log与alert的不同

    [1]alert()

        [1.1]有阻塞作用,不点击确定,后续代码无法继续执行

        [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法

            e.g. alert([1,2,3]);//'1,2,3'

        [1.3]alert不支持多个参数的写法,只能输出第一个值

            e.g. alert(1,2,3);//1

    [2]console.log()

        [2.1]在打印台输出

        [2.2]可以打印任何类型的数据

            e.g. console.log([1,2,3]);//[1,2,3]

        [2.3]支持多个参数的写法

            e.g. console.log(1,2,3)// 1 2 3  

    思考

    看到了其中一个很重要的一点就是alert有阻塞作用,不点击确定,后续代码无法继续执行.

    于是我就思考为什么我的代码需要阻塞才能正确执行呢,莫非是加载的问题?因为项目是ajax请求后才能加载完全。

    于是我就去看了下,并且把ajax请求中的async属性设置为了false(同步),这样只有等到我ajax请求后才能继续执行下面的代码,而不是异步加载。

    总之异步加载也是有一定的代价的,如果你后面还要使用ajax异步加载后的结果就不推荐使用异步,应该使用同步。

    好了以后使用ajax时,一定要注意同步异步的问题啦~~~

  • 相关阅读:
    django中函数之间的关系
    文件文本的操作
    边框宽度 边框圆角 边框颜色
    nstimer实现倒计时
    用nstimer实现倒计时
    IOS常用宏定义
    计算文字的Size
    判断UITableView滚动是否到底
    设置Label行间距
    UIAlertView 提示弹窗
  • 原文地址:https://www.cnblogs.com/wuguanglin/p/ajax_async.html
Copyright © 2011-2022 走看看