File size: 2,195 Bytes
a9fb7e9
 
 
cb6eafc
a9fb7e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 需求:将代码预览重构为 Tab 布局并优化刷新机制

- **创建时间:** 2025-10-11
- **状态:** 已验证 (Verified)

## 1. 需求描述

为了优化“代码生成”标签页的布局和用户体验,需要将“实时预览”和“生成的源代码”整合到同一个区域,并改进代码生成过程中的预览刷新逻辑。

## 2. 功能要求

1.  **Tab 布局:**
    - 将原有的右侧“实时预览”面板和底部“生成的源代码”面板,合并为页面右侧的一个 `gr.Tabs` 组件。
    - 该组件包含两个标签页:
        - **Tab 1: "实时预览"**: 显示 `<iframe>` 预览和“全屏”按钮。
        - **Tab 2: "生成的源代码"**: 显示代码框。

2.  **加载动画:**
    - 当用户点击“生成代码”后,在“实时预览”Tab 的内容区域中央,应立即显示一个旋转的加载动画(spinner),以明确表示“正在生成中”。
    - 这个动画在代码完全生成后消失。

3.  **刷新节流 (Throttling):**
    - 在代码流式生成期间,“实时预览”`<iframe>` 的内容刷新频率应降低,**至多每 5 秒刷新一次**    - 这可以避免因 `<iframe>` 过于频繁的重渲染导致的浏览器性能问题和闪烁。
    - 与此同时,“生成的源代码”Tab 内的文本需要**保持实时**的逐字流式更新。

## 3. 验收标准

1.  **新布局:** 预览和代码框已正确地显示在两个并列的 Tab 中。
2.  **加载动画:** 点击生成后,预览 Tab 能立即看到加载动画。
3.  **刷新行为:**
    - 在生成过程中切换到“生成的源代码”Tab,能看到代码在流畅地逐字增加。
    - 停留在“实时预览”Tab,能观察到 `<iframe>` 的内容是间隔性更新的(大约5秒一次),而不是持续闪烁。
4.  **最终结果:** 代码生成结束后,加载动画消失,预览区和代码区都显示最终的完整内容。

## 4. 验证方式

- 通过 UI 手动测试 Tab 布局、加载动画、刷新节流机制以及源代码的 HTML 转义问题。

## 5. 验证结果

- 已验证 (Verified)。所有功能点均按预期工作,转义问题已修复。