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#
在断开连接后,正在尝试重新连接(通过 Websocket)到内核。
kernel_connected.Kernel#
已建立与内核的连接。当所有 Websocket(例如,到 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#
不仅连接丢失,而且由于错误而丢失(即,我们没有告诉 Websocket 关闭)。
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
启动内核。这可能是因为未安装请求的内核类型。此消息的另一个原因是内核已终止或被终止,但会话未终止。