Przeglądaj źródła

feat(frontend): add `_pywebio_http_pull_interval` query argument

wangweimin 5 lat temu
rodzic
commit
095e90b841

+ 4 - 3
pywebio/html/index.html

@@ -69,15 +69,15 @@
             },
             'bokeh-widgets': {
                 exports: '_',
-                deps:['bokeh'],
+                deps: ['bokeh'],
             },
             'bokeh-tables': {
                 exports: '_',
-                deps:['bokeh'],
+                deps: ['bokeh'],
             },
             'bokeh-gl': {
                 exports: '_',
-                deps:['bokeh'],
+                deps: ['bokeh'],
             },
         }
     });
@@ -92,6 +92,7 @@
     let config = {
         debug: urlparams.get('_pywebio_debug'),
         outputAnimation: !urlparams.get('_pywebio_disable_animate'),
+        httpPullInterval: parseInt(urlparams.get('_pywebio_http_pull_interval') || 1000)
     };
     WebIO.startWebIOClient($('#markdown-body'), $('#input-container'), config);
 

+ 1 - 1
test/4.flask_backend.py

@@ -37,4 +37,4 @@ def start_test_server():
 
 
 if __name__ == '__main__':
-    util.run_test(start_test_server, test)
+    util.run_test(start_test_server, test, address='http://localhost:8080?_pywebio_debug=1&_pywebio_http_pull_interval=400')

+ 1 - 1
test/6.flask_coroutine.py

@@ -38,4 +38,4 @@ def start_test_server():
 
 
 if __name__ == '__main__':
-    util.run_test(start_test_server, test)
+    util.run_test(start_test_server, test, address='http://localhost:8080?_pywebio_debug=1&_pywebio_http_pull_interval=400')

+ 2 - 2
test/8.flask_multiple_session_impliment.py

@@ -36,7 +36,7 @@ def test(server_proc: subprocess.Popen, browser: Chrome):
     time.sleep(1)
     template.save_output(browser, '8.flask_multiple_session_impliment_p1.html')
 
-    browser.get('http://localhost:8080?_pywebio_debug=1&pywebio_api=io2')
+    browser.get('http://localhost:8080?_pywebio_debug=1&pywebio_api=io2&_pywebio_http_pull_interval=400')
     template.test_output(browser)
     time.sleep(1)
     template.test_input(browser)
@@ -70,4 +70,4 @@ def start_test_server():
 
 
 if __name__ == '__main__':
-    util.run_test(start_test_server, test)
+    util.run_test(start_test_server, test, address='http://localhost:8080?_pywebio_debug=1&_pywebio_http_pull_interval=400')

+ 1 - 1
webiojs/src/main.ts

@@ -41,7 +41,7 @@ function startWebIOClient(output_container_elem: JQuery, input_container_elem: J
     is_http_backend(backend_addr).then(function (http_backend) {
         let session;
         if (http_backend)
-            session = new HttpSession(backend_addr);
+            session = new HttpSession(backend_addr, appConfig.httpPullInterval);
         else
             session = new WebSocketSession(backend_addr);
         set_up_session(session, output_container_elem, input_container_elem);

+ 2 - 1
webiojs/src/state.ts

@@ -1,4 +1,4 @@
-import {Session} from "./session";
+import {HttpSession, Session} from "./session";
 
 // 运行时状态
 export let state = {
@@ -13,5 +13,6 @@ export let config = {
     codeMirrorModeURL: "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2/mode/%N/%N.min.js",
     codeMirrorThemeURL: "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2/theme/%N.min.css",
     outputAnimation: true, // 启用内容输出动画
+    httpPullInterval: 1000,  // HttpSession 拉取消息的周期(ms)
     debug: false,  // 调试模式, 打印所有交互的消息
 };