Javascript 当iframe位于视口中时,如何获得低帧率?

Javascript 当iframe位于视口中时,如何获得低帧率?,javascript,html,iframe,Javascript,Html,Iframe,当跨域iframe滚动到视口中时,我需要获得低帧速率。这是必需的,因为我想使用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

当跨域
iframe
滚动到视口中时,我需要获得帧速率。这是必需的,因为我想使用
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);
var last_time=0;
var lst_diff=[];
var平均值=0;
功能帧检查(当前时间){
var diff=当前时间-上次时间;
上次时间=当前时间;
如果(lst_差异长度>5){
lst_diff.shift();
}
第一个不同的推力(不同);
var总和=0;
lst_差异forEach(功能(val){
sum+=val;
});
平均值=总和/第一个差异长度;
//if(平均值<某个阈值)
//指示它在视口中
//做点什么
请求动画帧(帧检查);
}
请求动画帧(帧检查);
当它在视口中时,我可以在
iframe
中做些什么来提高它的效率,即占用很少的空间并显著降低帧率?我试着

  • 画布中绘制一些东西
    ,但浏览器即使在视口之外也会继续这样做

  • 应用繁重的CSS样式,如multiple
    text shadow
    ,并更改
    div
    的位置,但效果不佳。我甚至不知道帧率是否在下降


谢谢

我真的不明白您想做什么,但也许您可以使用
设置间隔(frame\u check,1000/60)
(60秒检查)频繁检查iframe位置。降低帧率对我来说听起来不是一个解决方案,但也许我错了…

获取跨域iframe(在其中)的位置是不可能的。我会在问题中说清楚。你有权访问iframe包含的页面吗?没有。否则我可以使用
postMessage
,我就是这么想的。但我仍然不明白你想做什么。实际上很简单:我想通过观察帧率来判断
iframe
是否在视口中。但“原因”在这里并不是一个真正的问题。