交互优化
- OK - 分段加载,未完成但已有结果时就渲染到列表中
- 可视化搜索进度
性能优化
- for 循环提速
- 不使用函数进行迭代,使用 for
- 判断 length 时,使用局部变量,避免每次都查一次数组的长度
- setTimeout 缩减延迟间隔
- 获取 TEXT 图层的方法进一步缩减每一次的检索范围,让每次搜索任务更细化
关键字 | 总时长(有结果 ms) | 总时长(无结果 ms) | 备注 |
yes | ㅤ | 4947 | ㅤ |
yes | ㅤ | 5552 | let len = selection.length |
yes | ㅤ | 5338 | ㅤ |
yes | ㅤ | 6054 | findKeyWord 使用 for 循环,放弃 forEach |
ㅤ | ㅤ | 5574 | ㅤ |
ㅤ | ㅤ | 5647 | ㅤ |
button | 5506 | ㅤ | ㅤ |
ㅤ | 5371 | ㅤ | ㅤ |
ㅤ | 5547 | ㅤ | ㅤ |
yes | ㅤ | 5874 | ㅤ |
ㅤ | ㅤ | 7088 | ㅤ |
ㅤ | ㅤ | 5459 | ㅤ |
yes | ㅤ | 6019 | 使用的变量在函数开始前命名好,后续直接调用变量 let node = node_list[i] |
ㅤ | ㅤ | 6179 | ㅤ |
ㅤ | ㅤ | 5372 | ㅤ |
ㅤ | 5116 | ㅤ | ㅤ |
ㅤ | ㅤ | 5391 | 取消判断父级状态 |
ㅤ | ㅤ | 5437 | ㅤ |
ㅤ | 5140 | ㅤ | ㅤ |
ㅤ | 7417 | ㅤ | ㅤ |
ㅤ | 5486 | ㅤ | ㅤ |
ㅤ | 5454 | ㅤ | 重点在 findKeyWord 方法的优化 |
ㅤ | 5472 | ㅤ | ㅤ |
ㅤ | 5060 | ㅤ | ㅤ |
ㅤ | 5202 | ㅤ | ㅤ |
ㅤ | 6214 | ㅤ | ㅤ |
ㅤ | 6141 | ㅤ | ㅤ |
ㅤ | 5709 | ㅤ | ㅤ |
ㅤ | 6060 | ㅤ | ㅤ |
ㅤ | 5723 | ㅤ | ㅤ |
ㅤ | 5934 | ㅤ | 减少变量 |
ㅤ | 5498 | ㅤ | ㅤ |
ㅤ | 5721 | ㅤ | ㅤ |
ㅤ | 5989 | ㅤ | ㅤ |
3 | 11672 | ㅤ | 推送进度 |
ㅤ | 12049 | ㅤ | ㅤ |
ㅤ | 12124 | ㅤ | ㅤ |
ㅤ | 12957 | ㅤ | 不推送进度 |
ㅤ | 13868 | ㅤ | ㅤ |
ㅤ | 13510 | ㅤ | ㅤ |
ㅤ | 13510 | ㅤ | ㅤ |
.find_result_list_info { height: 74%; display: flex; /* justify-content: space-around; */ align-items: center; color: rgba(40, 40, 40, 1); font-size: 12px; flex-direction: column; padding-top: 37%; }
// ui.tsx onSearch = () => { console.log('设置搜索中状态:'); this.setState({ find_loading: true, index:0, search_results_list: [] // 每次搜索清空历史记录 // code.ts findKeyWord node_list.forEach(element => { setTimeout(() => { test_number++ figma.ui.postMessage({ 'type': 'loading','index':test_number,'total':node_list.length });