# Phase 2 批注缓存测试指南

## 📍 测试位置

### 1. 打开历史详情页

```
应用首页 → 历史记录 → 点击任意一条记录
```

应该看到类似这样的页面：

```
┌─────────────────────────────────────────┐
│  [仅OCR] [仅翻译] [分块对比] [PDF对照]    │  ← 标签栏
├─────────────────────────────────────────┤
│                                         │
│  这是文档的内容...                       │
│  Lorem ipsum dolor sit amet...          │  ← 文本内容
│  这里有很多段落...                       │
│                                         │
│  Each paragraph is divided into         │
│  sub-blocks for annotation...          │  ← 每个句子是一个 sub-block
│                                         │
└─────────────────────────────────────────┘
```

### 2. 右键点击文本

**在内容区域的任意文本上右键点击**

例如：
- 右键点击 "这是文档的内容"
- 右键点击 "Lorem ipsum dolor"
- 右键点击任何一个句子或段落

### 3. 应该看到的菜单

正常情况下会弹出**批注菜单**，类似：

```
┌──────────────────────┐
│ ✏️ 添加批注           │
│ 🎨 高亮显示           │
│ 📋 复制文本           │
│ ...                  │
└──────────────────────┘
```

## ⏱️ 性能测试重点

### 优化前：
- 右键点击后 → **等待 200-300ms** → 菜单弹出
- 大文档（1000+ 句子）延迟更明显

### 优化后：
- 右键点击后 → **立即弹出**（< 10ms）
- 无论文档多大，延迟都很小

## 🧪 测试步骤

### 步骤 1: 检查缓存状态

在控制台运行：
```javascript
console.log('AnnotationDOMCache:', window.AnnotationDOMCache);
console.log('已初始化?', window.AnnotationDOMCache?.initialized);
console.log('缓存数量:', window.AnnotationDOMCache?.subBlocks?.length);
```

### 步骤 2: 右键测试

1. 在文本内容上**右键点击**
2. 观察菜单弹出速度
3. 观察控制台日志

**预期日志**（优化生效）：
```
[跨子块检测] 开始检测跨子块选择...
[跨子块检测] 页面上的子块总数: 1247
```
- ✅ 没有延迟
- ✅ 没有警告

**失败标志**（优化未生效）：
```
[AnnotationCache] 缓存未初始化，执行动态查询  ❌
```
- ❌ 明显延迟
- ❌ 看到警告

### 步骤 3: 性能对比（可选）

**测量右键延迟**：

在控制台运行：
```javascript
// 准备计时
document.addEventListener('contextmenu', function measureTime() {
    console.time('⏱️ 右键菜单响应时间');

    setTimeout(() => {
        console.timeEnd('⏱️ 右键菜单响应时间');
    }, 100);

    // 只测一次
    document.removeEventListener('contextmenu', measureTime);
}, { once: true });

console.log('✅ 已准备好测量。现在右键点击任意文本...');
```

然后右键点击文本。

**预期输出**：
```
⏱️ 右键菜单响应时间: 2.5ms  ✅ 优化生效
```

**失败输出**：
```
⏱️ 右键菜单响应时间: 285.3ms  ❌ 优化未生效
```

## 🔍 如果没有批注菜单怎么办？

### 情况 1: 看到浏览器默认的右键菜单

可能原因：
- 页面还没加载完成
- 批注功能没有启用
- 右键点击的位置不对（点到了空白处）

**解决方法**：
- 等待页面完全加载
- 确保点击的是**文本内容**，不是空白区域
- 先选中一段文本，再右键点击

### 情况 2: 菜单没有弹出

**检查**：
```javascript
// 检查批注功能是否加载
console.log('annotation_logic.js 加载?', typeof annotationContextMenuElement !== 'undefined');
```

## 📝 测试清单

```
测试环境: _______________
测试日期: _______________

[ ] 1. 打开历史详情页
[ ] 2. 等待内容完全加载
[ ] 3. 控制台检查缓存状态
       - AnnotationDOMCache 存在? [ ]
       - 已初始化? [ ]
       - 缓存数量 > 0? [ ]
[ ] 4. 右键点击文本
[ ] 5. 菜单立即弹出（无延迟）
[ ] 6. 控制台没有"缓存未初始化"警告

测试结果:
- [ ] ✅ 所有检查通过，优化生效
- [ ] ⚠️ 部分检查失败
- [ ] ❌ 优化未生效

备注: _______________
```
