Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript bokeh服务器:回调执行顺序_Javascript_Python_Asynchronous_Callback_Bokeh - Fatal编程技术网

Javascript bokeh服务器:回调执行顺序

Javascript bokeh服务器:回调执行顺序,javascript,python,asynchronous,callback,bokeh,Javascript,Python,Asynchronous,Callback,Bokeh,在我的bokeh服务器上,单击一个按钮即可完成时间密集型计算。在计算过程中,我想将按钮涂成红色,并将标签更改为“分析进行中”。这与我笔记本电脑上的以下脚本配合得很好但是,当我使用自己的桌面作为服务器时,完全相同的脚本不起作用。当在该服务器上运行脚本时,首先计算完成,然后按钮立即变为红色,然后立即变为绿色。 简体字: from bokeh.models import Button from bokeh.io import curdoc import time def callback():

在我的bokeh服务器上,单击一个按钮即可完成时间密集型计算。在计算过程中,我想将按钮涂成红色,并将标签更改为“分析进行中”。这与我笔记本电脑上的以下脚本配合得很好但是,当我使用自己的桌面作为服务器时,完全相同的脚本不起作用。当在该服务器上运行脚本时,首先计算完成,然后按钮立即变为红色,然后立即变为绿色。

简体字:

from bokeh.models import Button
from bokeh.io import curdoc
import time

def callback():
    button.button_type="danger"#signal work in progress via the button style
    button.label="Analysis in progress, please wait.."

    time.sleep(3)#or do some computation that takes time

    button.button_type="success"#signal the analysis is done via the button style
    button.label="Analysis Done"

button = Button(label='Analyze',button_type="success", width=500)
button.on_click(callback)

curdoc().add_root(button)
我的笔记本电脑:

  • python 3.6
  • 博克1.4.0
  • 英特尔(R)至强(R)CPU E3-1575M v5 3.00GHz, 32.0GB内存
  • 64位Windows 10
我的桌面:

  • python 3.7
  • 博克1.4.0
  • 英特尔(R)至强(R)E-2174G处理器@3.80GHz,16.0GB内存
  • 64位Windows 10
我已经在Chrome、Edge和IE11上进行了测试。另外,当我从笔记本电脑访问桌面上的服务器时,我注意到了同样的问题。因此,我认为这是服务器端的问题

我们赞赏您对这一点的假设,以及关于如何向正在进行的工作发出信号的备选方案


(在cmd中运行脚本的方法是:
bokeh service button.py--show

bokeh取决于龙卷风。在这两台电脑上,tornado的版本是不同的。将tornado版本从6.0.2降级到5.0.2解决了这个问题

pip install tornado==5.0.2

早期的龙卷风版本似乎表现不同。但是,您应该期望在函数结束之前不会发送回调的更新,如果需要在一个回调中“拆分”更新,请使用此处显示的技术: