在其他浏览器选项卡中打开Bokeh应用程序?

时间:2020-07-25 12:27:34

标签: bokeh

我正在使用不同的选项卡运行bokeh应用程序。我喜欢在不同的浏览器中打开同一应用程序。因此,我可以在不同的监视器中使用不同的应用程序选项卡。目前,我一次只能连接一个浏览器。我正在使用

tabs = Tabs(tabs = [tab0,tab1])
curdoc().add_root(tabs)

用于打开应用程序。并与

一起运行
bokeh serve myapp.py

如何使用bokeh客户端或其他工具?任何可行的例子吗?

在其他浏览器选项卡中打开Bokeh应用程序吗?

2 个答案:

答案 0 :(得分:1)

Bokeh的工作方式如下:该应用程序是创建文档的蓝图。有两个文档:一个在python端(在服务器上),一个在javascript端(在浏览器的客户端上)。散景会自动同步两个文档。这意味着,如果您在客户端上打开选项卡,则该选项卡在服务器上也将处于打开状态。

当您现在两次打开一个特定的python文档(例如,两次打开localhost:5006/gui?bokeh-session-id=14831)时,您将获得一个python文档和两个js文档,并且所有文档均已同步。这意味着,如果您打开标签页,则所有文档(所有js文档)中都会打开该标签页。

如果您想要两个状态不同的js文档,则需要有两个python文档(例如,通过打开localhost:5006/gui)。现在,这两个python文档不再同步,这使您可以打开两个不同的选项卡

现在,您想拥有多个状态不同的js文档(您希望激活不同的选项卡)。它们不能同步到相同的python文档,因为否则在js文档1中打开选项卡将在js文档2中打开选项卡。因此,您需要两个不同的python文档,但是现在这两个python文档不再同步。

根据您的评论,我认为您想同步部分文档,但不是全部。据我所知,bokeh对此没有任何支持。

您可以尝试的一种方法是禁用选项卡的事件传播。另一种方法是同步您关心的数据。

答案 1 :(得分:0)

我的预期目的是在不同的浏览器(不同的显示器)中查看不同的选项卡。仅凭散景很难做到。我可以在不同的浏览器上打开两个应用程序,但是它将是其他应用程序的镜像(如果我选择选项卡,则在其他应用程序中也可以看到相同的内容),或者它将完全独立。

要同步两个应用程序,我在 astropy 中使用了 SAMP 协议。我创建了一个应用程序作为服务器,另一个创建了客户端。服务器通过 SAMP 协议将变量发送给客户端。现在客户端中已收到服务器中的更改,但是我可以与客户端进行独立的操作。就像我可以随意切换到任何标签一样。就我的目的而言,效果很好。

请参阅

https://docs.astropy.org/en/stable/samp/example_table_image.html

相关问题