2020-04-08 14:13:33 +05:30
|
|
|
/**
|
|
|
|
* Polyfill
|
|
|
|
* @what requestIdleCallback
|
|
|
|
* @why To align browser features
|
|
|
|
* @browsers Safari (all versions), Internet Explorer 11
|
|
|
|
* @see https://caniuse.com/#feat=requestidlecallback
|
|
|
|
*/
|
2018-11-18 11:00:15 +05:30
|
|
|
window.requestIdleCallback =
|
|
|
|
window.requestIdleCallback ||
|
|
|
|
function requestShim(cb) {
|
|
|
|
const start = Date.now();
|
|
|
|
return setTimeout(() => {
|
|
|
|
cb({
|
|
|
|
didTimeout: false,
|
|
|
|
timeRemaining: () => Math.max(0, 50 - (Date.now() - start)),
|
|
|
|
});
|
|
|
|
}, 1);
|
|
|
|
};
|
|
|
|
|
|
|
|
window.cancelIdleCallback =
|
|
|
|
window.cancelIdleCallback ||
|
|
|
|
function cancelShim(id) {
|
|
|
|
clearTimeout(id);
|
|
|
|
};
|