BioforestChain/dweb_browser

window版本的dweb,从桌面打开应用的时候,电脑底部展示应用logo对应应用设计logo,但是从应用模块打开相应应用展示logo是dweb设计logo,最好统一一下

rabibithan opened this issue · 2 comments

@waterbang
window版本的dweb,从桌面打开应用的时候,电脑底部展示应用logo对应应用设计logo,但是从应用模块打开相应应用展示logo是dweb设计logo,最好统一一下
image

@waterbang window版本的dweb,从桌面打开应用的时候,电脑底部展示应用logo对应应用设计logo,但是从应用模块打开相应应用展示logo是dweb设计logo,最好统一一下 image

这个本身就是统一的,只不过刚好你点击的时候应用图标没加载成功,所以展示了默认的dweb的logo。目前桌面端每次打开应用时图标加载都有一定几率失败,还在优化。与 #159 是同一个问题。

图标加载到问题已经修复。可验收。

之前的原因是只有一个工作队列,工作原理类似: fetch -> render -> fetch -> render
因此只要有一个fetch卡住,就会导致后续的 render 和 fetch 停止。
而因为我们的图标服务器是不稳定的,很容易遇到 fetch 出错。

因此做了重构,有一下几点方案组成:

  1. fetch 和 render 独立开来,fetch 是完全异步的,不再阻塞 render,等 fetch 成功了才会去发起 render 任务
  2. render 现在做成了 renderPool,池中有3个render,可以并行执行 render 作业。以render的性能来说,预估2个就完全够了,再多就到了传输的瓶颈,因此配置给到3个,确保有一个冗余。
  3. fetch 现在有一个 lru 缓存,频繁访问的请求不会重复发起请求。
  4. 现在对于 svg 图标,会同时走两个渲染引擎并行光栅化,其中coil引擎用来确保渲染速度,但它对svg的支持并不完整,所以web引擎也会同步进行渲染,等web引擎返回后,会作为更高优先级的输出。
  5. coil和web两个引擎的光栅化现在也有 lru 缓存的支持。