浏览器Web API在Java的哪里运行?

Piy*_*wal 2 javascript multithreading asynchronous settimeout

浏览器Web api在何处以setTimeout之类的Java脚本运行?

它们是在其他环境中运行还是在javascript单线程的帮助下运行?

Sco*_*cus 6

它们在JavaScript运行时之外运行。这些“ Web API”是在浏览器的Web API执行空间内执行的。

setTimeout()例如,是window对象的方法(也可以通过调用window.setTimeout())。window不是JavaScript的全部内容(它是浏览器对象),而您要window为您执行的所有操作均在JavaScript运行时之外以及浏览器的其他功能中进行处理。对Web API调用的请求源自JavaScript环境,但是API调用的执行实际上在其外部运行。

这就是我们在Web应用程序中具有异步行为的原因。JavaScript运行时(这是一个同步环境,一次只能执行一项操作)正在执行其一项操作,而浏览器可以执行其他操作。

setTimeout()alert()navigator.geolocationXMLHttpRequest都是Web的API的所有例子是,JS引擎的运行之外。

这是其他一些Web API这是一段很棒的视频,专门在计时器的上下文中对此进行了说明。