Jak*_*kob 10 javascript settimeout
在Google Drive API的快速入门指南中,一旦加载了客户端库,就会调用以下函数:
// Called when the client library is loaded to start the auth flow.
function handleClientLoad() {
window.setTimeout(checkAuth, 1);
}
Run Code Online (Sandbox Code Playgroud)
setTimeout以这样的延迟1呼叫而不是checkAuth立即呼叫的目的是什么?
Ben*_*aum 10
JavaScript有异步I/O(AJAX /请求),以及setTimeout和setInterval,
运行setTimeout1毫秒(或0)的一种用法是告诉代码在其后的同步代码之后运行.这是一个例子
setTimeout(function(){
alert("World");
},1);
alert("Hello");
//alerts "Hello" then "World"
Run Code Online (Sandbox Code Playgroud)
我想保持我的答案简单而且到目前为止,如果你感兴趣,有关于setTimeout如何在MDN文章中有关它的更多细节
通过使用,setTimeout您可以在checkAuth功能完成之前使页面成为交互式.
从本质上讲,您正在阻止阻止checkAuth页面.
另请注意,HTML5规范中指定的最小延迟为5ms,因此等待1ms实际上是等待5ms.如果您回收该时间非常重要,则可以通过使用延迟0ms来实现相同的结果window.postMessage.这最初设计用于处理跨源通信,但具有与设置超时0ms类似的效果(由于浏览器仅允许5ms - 或者在某些旧版浏览器中为10ms,因此无法执行此操作).
最后,时间不保证.JavaScript在单个线程上运行,因此当你将某些内容推送到一个计时器上时,它必须等待执行其余JavaScript的开放,然后再转向该线程 - 它不会并行运行.
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |