docs: 添加数据流程详解文档 + fix: 修复消息渲染逻辑
- 新增完整的数据流程文档,详细说明从用户输入到响应显示的全流程
- 修复 messageArea.ts 中的消息渲染逻辑:
- 移除用户消息时重置分段容器的逻辑
- 移除对话完成时跳过 segments 处理的逻辑
- 确保对话完成时正确渲染最终的 segments
This commit is contained in:
1027
docs/数据流程详解.md
Normal file
1027
docs/数据流程详解.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -725,12 +725,6 @@ export function getMessageAreaScript(): string {
|
|||||||
|
|
||||||
// 添加消息
|
// 添加消息
|
||||||
function addMessage(text, sender) {
|
function addMessage(text, sender) {
|
||||||
// 如果是用户消息,先重置当前分段消息容器
|
|
||||||
// 确保用户消息不会被添加到上一轮 AI 消息容器内部
|
|
||||||
if (sender === 'user' && currentSegmentedMessage) {
|
|
||||||
currentSegmentedMessage = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
div.className = \`message \${sender}-message\`;
|
div.className = \`message \${sender}-message\`;
|
||||||
|
|
||||||
@ -909,12 +903,6 @@ export function getMessageAreaScript(): string {
|
|||||||
function updateSegmentsRealtime(segments, isComplete) {
|
function updateSegmentsRealtime(segments, isComplete) {
|
||||||
console.log('[WebView] updateSegmentsRealtime 被调用, segments:', segments, 'isComplete:', isComplete);
|
console.log('[WebView] updateSegmentsRealtime 被调用, segments:', segments, 'isComplete:', isComplete);
|
||||||
|
|
||||||
// 如果是完成标记,不处理 segments,直接返回
|
|
||||||
if (isComplete) {
|
|
||||||
console.log('[WebView] 对话完成,跳过 segments 处理');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!segments || segments.length === 0) {
|
if (!segments || segments.length === 0) {
|
||||||
console.log('[WebView] segments 为空,跳过渲染');
|
console.log('[WebView] segments 为空,跳过渲染');
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user