当javascript是单线程时,谁是onreadystatechange的调用者
Who is the caller of onreadystatechange when javascript is single-threaded?
好吧,我是javascript的新手,听说它是单线程的。在我看来,如果您发出异步请求,它应该启动一个自己的线程来控制服务器是否已经响应。这在Javascript中不起作用。我在想,是否有一些内置的机制可以保存所有侦听器并调用它们,这取决于它们"同意"的条件(onreadystatechange)。
这只是一个假设,我想我完全错了。也许有人能帮我?
只有javascript执行本身是单线程的,如下所述。然而,底层引擎可能会使用更多的线程。
因此,HTTP请求(在浏览器内部深处创建)可能有自己的线程,但当发生某种事情(如响应)时,它会触发一个事件,将其排入JS任务调度程序。一旦当前脚本执行结束,就会调用onreadystatechange
函数。
正如您所知,XHR对象对于所有浏览器都是不同的。例如,IE使用ActiveX,FF使用XMLHttpRequest对象。。。有一些努力通过引入XHR2对象来在HTML5中统一这一点,但它仍然没有得到广泛支持。因此,对于每个浏览器,这将以不同的方式实现。有些可能使用线程,另一些则使用其他线程。这不是纯粹的javascript。当人们说javascript是单线程的时,他们的意思是你不能用javascript手动创建线程。但这并不意味着你不能进行异步编程。
相关文章:
- Javascript解析器本身是用类似ESPRIMA的Javascript编写的,这是如何工作的?然后谁解析ESPRIM
- 有谁知道这行代码的输出是什么?$.get(“http://192.168.4.1:80/”, {pin:p}.
- 当javascript是单线程时,谁是onreadystatechange的调用者
- CSS - 如何水平居中表谁的位置是绝对的
- 我怎么知道谁是 js 函数的调用方
- 拉斐尔气泡图查询(谁能告诉我这到底是什么图表?
- 如何知道谁是AngularJS中的调用方函数
- 谁是我的父母听众
- 对焦功能在这里有什么用?谁能解释下面的代码?我是初学者,所以我需要知道对焦功能的使用
- 在JavaScript中,第一个绑定决定了谁“;这个“;是(绑定两次或第二次并不重要)
- Nodejs游戏检查玩家谁是等待玩
- 有谁知道这是什么javascript图形库(或可以推荐类似的东西)
- 谁能告诉我这个对象的正则表达式是“xauthtoken"”?
- 在JS中,数组的元素可以知道谁是该数组的所有者吗?
- 是否有一种方法来使用' ng-repeat-start/end '的dom元素谁不是兄弟
- 谁能解释一下这是什么?bit在这个Javascript中
- 谁能解释一下在页面中自动更新最新帖子的最好方法是什么?
- DOMCharacterDataModified未在Firefox和Chrome中一致启动.谁是正确的
- 谁是 #each 脚本.polyfills来自
- 什么是最好的方式拉搜索结果从任何谁.com到一个iframe在我的网站