Inspired by kona's YouTube CPU Tamer
Description
This is for all kinds of YouTube applications, including main page, embedded video, and live chat.
- Faster
- More Stable
- Lower Battery Consumption
Note1: This hijacks to setTimeout
, setInterval
, clearTimeout
, clearInterval
Note2: This uses setInterval(..., 250ms)
instead of requestAnimationFrame
for background running.
Remarks
This userscript hijacks setTimeout & setInterval leading different browser behaviors as follows:
Case 1
let f=function(){console.log('hello world')};
setTimeout(f,100);setTimeout(f,100);setTimeout(f,100);
Native: print out "hello world" 3 times.
Modified: print out "hellow world" 1 time. (in the same AnimationFrame)
Case 2
let f=function(){console.log('hello world')};
setTimeout(f,100);setTimeout(f,110);setTimeout(f,120);
Native: print out "hello world" 3 times.
Modified: print out "hellow world" 1 ~ 3 time(s) depending on the execution time of function handler, the responsiveness of browser, and the segregation of AnimationFrames;
Case 3
let f=function(){console.log('hello world')};
setTimeout(f,100);setTimeout(f,200);setTimeout(f,300);
Native: print out "hello world" 3 times.
Modified: print out "hello world" 3 times. (in 3 AnimationFrames)