JavaScript 事件#
注意
这完全复制自旧的 IPython wiki,目前正在开发中。本开发指南的许多信息已过时。
(注意:此页面目前与 IPython/Jupyter master 不一致)
JavaScript 事件用于在发生某些事情时通知笔记本界面中不相关的部分。例如,如果内核正在忙于执行代码,它可能会发送一个宣布此事件,然后其他服务(如通知区域)可以接收该事件。有关事件本身如何工作的详细信息,请参阅 JQuery 文档。
此页面记录了核心事件集,并解释了何时以及为何触发它们。
单元格相关事件#
单元格工具栏相关事件#
仪表板相关事件#
app_initialized.DashboardApp#
当 Jupyter Notebook 浏览器窗口首次打开并初始化仪表板应用程序时。仪表板应用程序列出当前目录中的文件和笔记本。此外,它允许您创建和打开新的 Jupyter Notebook。
内核相关事件#
kernel_created.Kernel#
内核已通过 /api/kernels
成功创建或重新创建,但尚未建立与它的连接。
kernel_created.Session#
内核已通过 /api/sessions
成功创建或重新创建,但尚未建立与它的连接。
kernel_reconnecting.Kernel#
断开连接后,正尝试(通过 websockets)重新连接到内核。
kernel_connected.Kernel#
已与内核建立连接。这会在所有 websockets(例如,到 shell、iopub 和 stdin 通道)打开后立即触发。但这不一定意味着内核已准备好执行任何操作。
kernel_starting.Kernel#
内核正在启动。这会在内核进程启动时触发一次,并且可以作为消息由内核发送,或者如果前端知道内核正在启动(例如,它创建了内核并已连接到它,但尚未能够与其通信),则可以由前端触发。
kernel_ready.Kernel#
与 kernel_idle.Kernel 类似,但在内核完全启动后触发。
kernel_restarting.Kernel#
内核正在重新启动。这会在调用 /api/kernels
的重新启动开始时触发。
kernel_autorestarting.Kernel#
内核正在自行重新启动,这可能也意味着发生了导致内核死亡的事情。例如,在笔记本中运行以下代码将导致内核自动重新启动
import os
os._exit(1)
kernel_interrupting.Kernel#
内核正在被中断。这会在调用 /api/kernels
的中断开始时触发。
kernel_disconnected.Kernel#
与内核的连接已丢失。
kernel_connection_failed.Kernel#
不仅连接丢失了,而且是由于错误而丢失的(即,我们没有告诉 websockets 关闭)。
kernel_idle.Kernel#
内核的执行状态是“空闲”。
kernel_busy.Kernel#
内核的执行状态是“忙碌”。
kernel_killed.Kernel#
内核已通过 /api/kernels
手动终止。
kernel_killed.Session#
内核已通过 /api/sessions
手动终止。
kernel_dead.Kernel#
如果内核死亡,并且内核管理器尝试重新启动它但无法做到,则会触发此事件。例如,在笔记本中运行以下代码将导致内核死亡,并且内核管理器无法重新启动它
import os
from IPython.kernel.connect import get_connection_file
with open(get_connection_file(), 'w') as f:
f.write("garbage")
os._exit(1)
kernel_dead.Session#
无法通过 /api/sessions
启动内核。这可能是因为请求的内核类型未安装。此消息的另一个原因是内核死亡或被终止,但会话没有。