代码之家  ›  专栏  ›  技术社区  ›  Googlebot

如何通过phantomJS实时呈现javascript?

  •  0
  • Googlebot  · 技术社区  · 7 年前

    我通过以下方式呈现页面的javascript行为 phantomJS 代码如下

    var page = require('webpage').create();
    page.viewportSize = { width: 1920, height: 1080 };
    page.open('index.html', function(){
        (function snap(i){
            if(i < 5000){
                window.setTimeout(function(){
                    page.render('i+'.png');
                    snap(++i);
                }, 20);
            }
            else{
                phantom.exit();
            }
        })(0);
    });
    

    问题是当以高分辨率渲染时,CPU被大量使用,因此javascript性能变慢。例如,如果一个javascript操作需要100秒,那么在重载情况下需要500秒。因此,捕获的图像仅用于javascript场景的1/5。

    是否可以保证javascript事件在原始时间段内完成?或者根据原始时间段而不是发生的时间段来呈现javascript?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Brad    7 年前

    是否可以保证javascript事件在原始时间段内完成?

    不,这是不可能的,因为没有“原始时间表”的概念。

    相反,您所需要做的就是加快捕获能力。为此,您必须放弃PhantomJS。幸运的是,Chromium本身有一个非常好的选项卡捕获API,可以实时捕获视频。