前言

在做项目的过程中遇到一个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时,一定要注意同步异步的问题啦~~~

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2021-10-09
  • 2021-07-22
  • 2021-05-31
  • 2021-09-05
  • 2022-03-09
猜你喜欢
  • 2021-12-08
  • 2022-02-09
  • 2021-11-22
  • 2021-11-06
  • 2021-07-06
相关资源
相似解决方案