|
@@ -4,20 +4,17 @@ Architecture
|
|
|
概念
|
|
|
------------
|
|
|
|
|
|
-``Session`` 表示浏览器与程序交互产生的一次会话。PyWebIO在会话中运行 ``Task`` ,任务是
|
|
|
+``Session`` 表示浏览器访问PyWebIO应用产生的一次会话。其生命周期从浏览器打开PyWebIO应用开始,到用户关闭浏览器页面或PyWebIO应用逻辑运行结束为止。
|
|
|
|
|
|
-会话中除了起始的执行单元,也可以并发启动新的执行单元,在新的执行单元中也可以进行输入输出。
|
|
|
+会话建立后,PyWebIO创建一个线程或协程来执行应用逻辑。这里的线程或协程在PyWebIO中被称为 ``Task`` (执行单元)。
|
|
|
+除了起始的执行单元(由PyWebIO框架启动),应用在会话中也可以自行启动新的执行单元,在新的执行单元中也可以进行输入输出。
|
|
|
|
|
|
-在用户端,相同会话中的不同的执行单元的输入是独立的,共享输出空间,但输出域的栈结构各自独立。
|
|
|
+在浏览器端,相同会话中的不同的执行单元的输入是独立的,共享输出空间,但输出域的栈结构各自独立。
|
|
|
|
|
|
-若用户正在填写一个执行单元的表单,会话中的其他执行单元也开始向用户请求输入,此时用户正在填写的表单将会隐藏,
|
|
|
-新的输入表单将会显示给用户,当用户填写完新表单并提交后,旧表单重新显示,之前在旧表单上的输入也会保留。
|
|
|
+若用户正在填写一个执行单元的表单,会话中的其他执行单元也开始向用户请求输入,此时用户正在填写的表单将会被新的表单覆盖,
|
|
|
+当用户填写完新表单并提交后,旧表单重新显示,之前在旧表单上的输入也会保留。
|
|
|
|
|
|
-在基于线程的会话中,会话中的每个执行单元都是一个线程
|
|
|
-
|
|
|
-在基于协程的会话中,会话中的每个执行单元都是一个协程
|
|
|
-
|
|
|
-除了并发执行的执行单元,会话中还有事件回调函数,目前就只有按钮控件可以绑定点击事件的回调函数。
|
|
|
+在基于线程的会话中,会话中的每个执行单元都是一个线程;在基于协程的会话中,会话中的每个执行单元都是一个协程。
|
|
|
|
|
|
架构
|
|
|
------------
|