js中的同步与异步的问题】的更多相关文章

你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任务和流程.那么这里说的同步和异步到底是什么呢?如果你真的不懂,我希望你认真读完这篇文章.其实我个人觉得js官方的文档在使用两个词的时候并不准确,包括很多其他词汇,都只是听起来高深,但实际应用好像跟这些词没半毛钱关系.例如“事件委托”这个词,不知道的人乍…
前言 近来,总是忙于拿js写一些案例,因为是小白,并没有什么丰富的经验,对各个知识点把握也不是很全面,写起来真的是...一言难尽,太痛苦了= =.尤其是在写一些轮播的时候,里面需要用到定时器,而一旦用了定时器,就要考虑js中一个重要无比的知识点!没错,就是同步与异步,这问题困扰了我很长时间,经过几番波折.......还是没有把案例搞出来,哈哈,但是对这个知识点还是了解了不少,于是就有了这篇博客~下面进入正题: 知识点罗列 1.同步:js本身就是同步的,也就是说代码从上往下执行的这么一个机制. 2…
你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任务和流程. 那么这里说的同步和异步到底是什么呢?如果你真的不懂,我希望你认真读完这篇文章.其实我个人觉得js官方的文档在使用两个词的时候并不准确,包括很多其他词汇,都只是听起来高深,但实际应用好像跟这些词没半毛钱关系.例如“事件委托”这个词,不知道的人…
最近看到前端面试问到js中的同步和异步,这个问题该怎么回答? 梳理一下,js对于异步的处理,很多人的第一反应是ajax,这只能说是对了一半. 1.个人觉得,js中,最基础的异步是setTimeout和setInterval函数,很常见,但是很少人有人知道其实这就是异步,因为它们可以控制js的执行顺序 var timeoutID = window.setTimeout(func[, delay, param1, param2, ...]); 看看下面的测试代码会出现什么?? 要求出现的顺序是张一…
javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任务和流程. 所以同步和异步,无论如何,做事情的时候都是只有一条流水线(单线程),同步和异步的差别就在于这条流水线上各个流程的执行顺序不同. 1.最基础的异步是setTimeout和setInterval函数,很常见,但是很少人有人知道其实这就是异步,因为它们可以控…
首先我们先看看同步与异步的定义,及浏览器的执行机制,方便我们更好地理解同步异步编程. 浏览器是多线程的,JS是单线程的(浏览器只分配一个线程来执行JS)   进程大线程小:一个进程中包含多个线程,例如在浏览器中打开一个HTML页面就占用了一个进程,加载页面的时候,浏览器分配一个线程去计算DOM树,分配其它的线程去加载对应的资源文件...再分配一个线程去自上而下执行JS 同步:在一个线程上(主栈/主任务队列)同一个时间只能做一件事情,当前事情完成才能进行下一个事情(先把一个任务进栈执行,执行完成,…
<script> /* * JS 是单线程 * 同步 异步 * 常见的异步 * 1.定时器 * 2.事件绑定 * 3.ajax请求(一般的都是异步) * 4.回调函数也可以理解成 异步 * */ var oDiv = document.getElementById('div1'); console.log(1); var timer = setTimeout(function () { console.log(2) },3000); console.log(3); oDiv.onclick =…
同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码    异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而可以继续在客户端做其它事情. 可以简单的理解认为同步是单线程的异步是多线程的 在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符. 所以:若…
我们都知道javascript是单线程的,node.js是一个基于Chrome V8 引擎的 javascript 运行时环境,注意 node.js 不是一门语言,别搞错了. javascript为什么是单线程的,这么做有什么好处? 因为历史原因,js的出现主要是为了解决页面的交互和操作DOM,如果是多线程的,就会带来比较复杂的同步问题. 比如两个线程同时操作一个DOM,那最终页面显示上会以哪个线程操作为准,这就是个问题.而单线程就没有这种问题. 创建线程是需要消耗资源的,早期js是嵌在网页中被…
首先,我们要知道,JavaScript的本质是一门浏览器脚本语言,在执行的时候是一行一行的执行,只有前面的代码执行完了才会执行后面的代码.JS是单线程语言指的就是这个意思. 同步和异步其实在进行任务执行顺序时候都只有一条流水线,区别在于执行任务的顺序不同. 对于同步任务和异步任务,打个比喻: 有一堆学生在食堂排队打饭,然后进门的时候有些学生领了个异步的牌子,有些学生没有领,然后在窗口前排队打饭的时候,食堂大叔规定,有异步牌子的学生出来重新组成一个小队列,在窗口旁边等待,没有牌子的学生仍然在窗口前…