micro-app icon indicating copy to clipboard operation
micro-app copied to clipboard

性能优化,是否应该缓存 processCode 后的内容,而不是之前的内容

Open dream2023 opened this issue 3 years ago • 5 comments

背景

888

首先如图所示,processCode 还是比较花费时间的,基本都是 30ms 以上,已经超过了一帧的时间(时间长)。

其次,对于已缓存的 JS 或者 CSS,现在缓存的是原内容,这就意味着,对于重复的 JS 或者 CSS 还是会重复走 processCode 这样的过程,而且最终的结果是一致的。

期望的效果

既然最终的结果是一致的,那是否应该缓存处理后的结果,而非处理前的结果,甚至是处理后的 DOM 节点,这样就极大的提高了重复执行的效率。

dream2023 avatar Jul 21 '22 08:07 dream2023

microApp.start的代码发一下呢

bailicangdu avatar Jul 21 '22 10:07 bailicangdu

image

涉及到公司代码,不能随便发 😂

但里面有很多 replace 的逻辑,原因是,我们希望子应用尽可能少的改造,所以主应用做了很多的兼容,尤其是有 angular 1.x 代码处理比较多。

dream2023 avatar Jul 21 '22 10:07 dream2023

你是希望被插件处理过的js可以缓存下来,避免重复执行吧,但我们没有办法确定每次渲染时插件返回的js内容是否一致

bailicangdu avatar Jul 21 '22 10:07 bailicangdu

以后会增加一个选项,让开发者选择是否需要缓存数据

bailicangdu avatar Jul 21 '22 10:07 bailicangdu

以后会增加一个选项,让开发者选择是否需要缓存数据

嗯嗯,明白。确实会出现同一个链接,不同时间点的请求,确实可能不一样。

增加一个选择可以,缓存最终的结果,而不是最初的内字符串内容。

dream2023 avatar Jul 21 '22 10:07 dream2023