浏览器使用postMessage实现零延时定时器
Posted 刘翾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器使用postMessage实现零延时定时器相关的知识,希望对你有一定的参考价值。
原文地址: https://dbaron.org/log/20100309-faster-timeouts
作者: David Baron
浏览器零延时定时器
(function()
var timeouts = [];
var messageName = "zero-timeout-message";
// 类似setTimeout, 但是仅仅接受一个函数argument, 没有延迟时间参数(永远是0)
function setZeroTimeout(fn)
timeouts.push(fn);
window.postMessage(messageName, "*");
function handleMessage(event)
if (event.source == window && event.data == messageName)
event.stopPropagation();
if (timeouts.length > 0)
var fn = timeouts.shift();
fn();
window.addEventListener("message", handleMessage, true);
// Add the one thing we want added to the window object.
window.setZeroTimeout = setZeroTimeout;
)();
以上是关于浏览器使用postMessage实现零延时定时器的主要内容,如果未能解决你的问题,请参考以下文章