Bokeh 服务器 - 在回调 returns 之前强制刷新客户端图形?
Bokeh server - force refresh client figure before callback returns?
使用 Bokeh 服务器,有没有办法通过回调函数强制客户端图形根据更新的源进行刷新?也就是说,回调函数还没有完成,但我还是想展示一些更新。
具体来说,我有一个应用程序,用户可以在其中单击图形中的几个位置,然后点击一个按钮来执行数据拟合算法。单击按钮时,首先会进行快速初始拟合,然后会发生较长的拟合过程(在单独的图中)。默认情况下,初始拟合图似乎不会随着源更新而更新,而是在回调完成后才更新。
initial_fit_data_source = ColumnDataSource(...)
final_fit_data_source = ColumnDataSource(...)
def fitting_callback():
... # Perform quick initial fit.
initial_fit_data_source.data['Fit'] = initial_fit
# Here I want to update the client's initial fit figure.
... # Perform long fitting.
final_fit_data_source.data['Fit'] = final_fit
有没有办法在回调期间执行此刷新?
是的。只有当执行回到事件循环时,Bokeh 才能发送文档更新。为此,您可以在任何地方使用异步函数或将单独的步骤包装在无参数函数中并将它们传递给 document.add_next_tick_callback
。无论哪种方式,最好也将所有阻塞计算包装在线程中:https://docs.bokeh.org/en/latest/docs/user_guide/server.html#updating-from-threads
使用 Bokeh 服务器,有没有办法通过回调函数强制客户端图形根据更新的源进行刷新?也就是说,回调函数还没有完成,但我还是想展示一些更新。
具体来说,我有一个应用程序,用户可以在其中单击图形中的几个位置,然后点击一个按钮来执行数据拟合算法。单击按钮时,首先会进行快速初始拟合,然后会发生较长的拟合过程(在单独的图中)。默认情况下,初始拟合图似乎不会随着源更新而更新,而是在回调完成后才更新。
initial_fit_data_source = ColumnDataSource(...)
final_fit_data_source = ColumnDataSource(...)
def fitting_callback():
... # Perform quick initial fit.
initial_fit_data_source.data['Fit'] = initial_fit
# Here I want to update the client's initial fit figure.
... # Perform long fitting.
final_fit_data_source.data['Fit'] = final_fit
有没有办法在回调期间执行此刷新?
是的。只有当执行回到事件循环时,Bokeh 才能发送文档更新。为此,您可以在任何地方使用异步函数或将单独的步骤包装在无参数函数中并将它们传递给 document.add_next_tick_callback
。无论哪种方式,最好也将所有阻塞计算包装在线程中:https://docs.bokeh.org/en/latest/docs/user_guide/server.html#updating-from-threads