背景
公司需要做一个同步盘的客户端,框架技术选型方面使用了支持跨平台的Electron框架,其中一些核心功能就是文件的上传,和下载,考虑到node操作文件比较方便,起初把文件的下载上传操作放到主进程,在大量文件下载和上传时,造成了界面的卡顿,现在就这个问题进行剖析和优化。
解决卡顿
方案一
首先要确定是什么因素导致的卡顿,在平时,没有上传下载文件时,electron客户端没有出现卡顿的情况,然后对下载的流程进行跟踪,通过打印log日记发现,在执行一个方法后后面的log无法输出,然后界面失去了响应,其代码如下
const parentExist = (rpath: string) => {
const root = store.get("syncPath") as string;
let parent = path.parse(rpath).dir.replaceAll("\\", "/");
let localFilePath = path.join(root, parent);
let isFalse = parent !== "/";
const dirs = [];
try {
while (