From c383a20455f6152f54072998519fffdb9c32f8f7 Mon Sep 17 00:00:00 2001 From: keanu77 <20503845+keanu77@users.noreply.github.com> Date: Mon, 19 Oct 2026 20:36:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E6=8A=95=E7=A5=A8=E6=8A=95=E5=BD=B1?= =?UTF-8?q?=E7=89=87=E7=AB=AF=E6=96=B7=E7=B7=9A=E5=BE=8C=E9=87=8D=E9=80=81?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E9=80=99=E9=A0=81=E7=9A=84=E9=96=8B=E9=A1=8C?= =?UTF-8?q?=EF=BC=8F=E9=9B=A2=E9=96=8B=E7=8B=80=E6=85=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 控制請求逾時後以退避(上限 15 秒、最多 8 次)重送目前這頁的狀態, online 事件或 WebSocket 重連時立即重送;換頁即作廢舊重送,揭曉/清空不重送。 另以 navDone 追蹤後端已確認的換頁,修正斷線時連過兩張非投票頁、後端停在上一題。 重新 build docs/index.html。 --- CHANGELOG.md | 1 + docs/index.html | 39 +++++++++++++++++-- .../references/live-poll/screen/live-poll.js | 35 ++++++++++++++++- 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d6af0e..7abd88f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - 新增 `README.en.md`(英文完整說明)、`SECURITY.md`(漏洞回報、ADMIN_KEY 處理與輪替、QA 會執行 JS);README 開頭放 Live Demo 連結與 45 秒流程 GIF(`docs/demo.gif`)。 - 乾淨環境安裝測試(OrbStack Ubuntu 24.04,照 README 從 clone 到離線 QA、講義、PDF、做法 B 全程):發現 **Node 18 跑不了 Playwright**,需求改為 Node 20+(README 徽章、install.sh 檢查、SKILL.md、engines),疑難排解補上;`build-handout.mjs` 找不到 render 目錄時改成明確錯誤訊息。 - 修正 PR #3/#4 的 Codex 審查意見:數字題中位數偶數筆改取中間兩筆平均(抽出 `worker/src/stats.js` 並加 `node --test` 測試,CI 一併執行);投影片端快速換頁不再重開已離開的題目(控制請求排隊+換頁序號);手機頁回前景時不會多開一條 WebSocket;模擬模式開在加入頁時就顯示模擬人數;`qrcode` 改為 skill 自帶套件,照文件安裝即可跑 `poll-slides.mjs`;README 部署指令改用子 shell,不會停在 `my-poll` 裡;Live Demo 安裝頁改為 Node 20+。 +- 投票投影片端:斷線超過 5 秒時,開題/離開的控制請求逾時後會以退避(1、2、4… 秒,上限 15 秒、最多 8 次)重送**目前這頁**的狀態,網路恢復(`online` 事件或 WebSocket 重連)時立即重送;換頁後舊的重送作廢,揭曉、清空不重送。也修正斷線時連過兩張非投票頁、後端停在上一題的情況。 ## 1.3.0 — 2026-10-18 diff --git a/docs/index.html b/docs/index.html index d74d65c..7708e40 100644 --- a/docs/index.html +++ b/docs/index.html @@ -621,7 +621,7 @@

點點看:這是真的能作答的測驗

示範模式
模擬 60 人作答
正式使用時這裡是加入 QR
0 人作答
0 支手機在線
按 A 揭曉
- +
@@ -804,7 +804,7 @@

謝謝觀看

@keyframes lpPulse{70%{box-shadow:0 0 0 12px rgba(111,207,151,0)}0%{box-shadow:0 0 0 0 rgba(111,207,151,.6)}} @media (prefers-reduced-motion:reduce){.lp-bar span,.lp-bin-bar span,.lp-answer{transition:none}.lp-live .lp-dot{animation:none}} - +