如何覆盖Bokeh上的方法?如何检查页面上是否已呈现所有元素?

时间:2017-05-11 12:37:22

标签: coffeescript bokeh

我正在运行散景作为Bokeh服务器应用程序。

我想在页面上呈现所有项目时执行一些操作。所以我发现在this file中打印了一条消息。我怎么能在消息后运行一些代码?有没有我可以看到的标志来检查服务器是否已加载并呈现所有元素?可以覆盖散景上的方法吗?

if promise != null
  promise.then(
    (value) ->
      console.log("Bokeh items were rendered successfully")
    (error) ->
      console.log("Error rendering Bokeh items ", error)
  )

更新

由于这仍然不可能,我在同一时间找到了一个解决方法:

oldLog = console.log;
console.log = function (message) {
    if(message.localeCompare('Bokeh items were rendered successfully') == 0){
        window.top.postMessage('show-bokeh-iframe', '*')
        console.log = oldLog;
    }
    oldLog.apply(console, arguments);
};

1 个答案:

答案 0 :(得分:1)

目前Bokeh没有内置任何东西。有一个开放的功能来添加对用户钩子的支持,以便在Bokeh文档init上运行代码:

https://github.com/bokeh/bokeh/issues/4272

希望能够将其变为std::cout << '\n';

我的猜测是有一些方式用hacky JS做这个,也许其他人会在同一时间有一个解决方法。