js异步的处理

    js 不需要编译 是一个简单而强大的脚本语言 它的引擎或者说是执行器 就是浏览器 

    编写一个html文件 书写正确即可被浏览器识别 成为开发者便于使用的Dom 

   一个基本的浏览器 在最底层的三个组件分别是网络,UI后端和js解释器。作用如下:

    (1)网络- 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作

    (2)UI 后端- 用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口

    (3)JS解释器- 用来解释执行JS代码

    一般的浏览器都支持开发者模式 通过开发者模式了解Js的'多线程'机制

    举个例子:一段ajax请求 向服务器请求资源 加载至页面需要时间,一般图片加载都很耗时 但浏览器不能等着图片加载 所以ajax请求默认是异步的 同步和异步的区别表现在时间上面 但是也可以理解成为空间上面 是资源的不对等即JS解释器只有一个 占据js资源空间的进程 但归根究底还是时间上的问题 因为代码的执行顺序 最终还是空间的问题 代码的上下决定了结果。

    需要理清的一点是异步的表现 资源的请求还在继续 在网络层进行 js解释器则向下执行代码 所以会产生一个问题 即资源还没加载完 下面的操作就对相关的资源进行处理 导致BUG 为了应对这种情况 JS有几种方法处理异步编程(针对的情况是异步的资源请求)

       一、回调函数

       二、事件监听

       三、发布/订阅

       四、Promises对象

    以上的处理方法基本都通过占用资源的请求来解决问题 即请求完毕后通知主程序.

    还有一个奇葩 setTimeout()  它的使用不做赘述

转载于:https://my.oschina.net/IJTOMS/blog/823284

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值