当iframe在视口中时如何获得低帧率?

时间:2014-12-03 11:04:27

标签: javascript html html5 iframe

当跨域iframe滚动到视口中时,我需要获得 LOW 帧速率。这是必需的,因为我想使用requestAnimationFrame()从跨域iframe中了解它的位置。例如,

var last_time = 0;
var lst_diff = [];
var avg = 0;

function frame_check(current_time){
    var diff = current_time - last_time;
    last_time = current_time;

    if (lst_diff.length > 5){
        lst_diff.shift();
    }
    lst_diff.push(diff);

    var sum = 0;
    lst_diff.forEach(function(val){
       sum += val;
    });
    avg = sum / lst_diff.length;

    // if (avg < some threshold )
    // indicates it is in the viewport
    // do something

    requestAnimationFrame(frame_check);
}
requestAnimationFrame(frame_check);

当它在视口中时,我可以在iframe中做些什么来提高效率,从而占用很小的空间并显着降低帧速率?我试着

  • canvas中绘制一些内容,但浏览器会一直在视口外执行;

  • 应用多个text-shadow等重量级CSS样式并更改div的位置,但效果不佳。我甚至无法判断帧速率是否下降。

谢谢!

1 个答案:

答案 0 :(得分:0)

我真的不明白你要做什么,但也许你可以用setInterval(frame_check,1000/60)非常频繁地检查iframe位置(60秒检查)。降低帧速率听起来不像是我的解决方案,但也许我错了......