请教,问题整理

请教,问题整理

前序:

其实还是上次我们吃饭聊的事,Hybrid离线化的事 ~ 还是那套加注释的方案。

技术背景:

最近在研究Hybrid相关的技术方案,其主要的研究方向是客户端WebView的性能提升,如:白屏优化,启动优化,DNS优化、CDN分发、离线资源.
我们本次最想请教的是离线化相关的内容
业内派系分为三类:
  1. 资源离线下发zip包(html、css、js等),Native拦截请求,按WebView原流程完成页面加载.(传统方案,现在依旧很多公司应用:蚂蚁、百度)
  1. 资源、数据有服务渲染组合完成,并压缩后通过预推下发. Native主动请求资源,将在Stream桥接WebView.保证页面直出. (静态直出, 头条是在这个基础上做升级.)
  1. (重点本次想要请教的方案)腾讯VasSonic,通过服务器渲染组装Html/css、Data内容.
    1. 但是它对比 2) 的SSR不同之处会采用注释的(<!—sonicdiff-title-begin —>xxxxx<!—sonicdiff-title-end—>)来划分数据类型的类型.
      notion image

# 问题1,注释怎么来按标准生成:

基于腾讯这个VasSonic方案,无论是预置离线包,还是预推离线包。他都需要利用注释将界面进行划分. 来几个比较细的问题:
  • 按单一个html页面来说, 模块的颗粒度应该怎么制定比较合理?
  • 我可以如何将注释插入到其中,webpack具体哪个环节比较合适。 因为我看到SSR也是通过Webpack插件集成来完成.

# 问题2,SSR生成后,还会存在JavaScript代码的后续执行么:

比如我这边现在页面通过服务器渲染组装完成后,但页面其实还是会存在javascript代码。
  • 其底层逻辑主要还是SSR的核心原理我不懂,因为我看来就是利用服务器通过利用jsEngine来执行页面本有的javascript代码获取数据乃至将页面渲染组装完成. 但是javascript代码还在?当我WebView加载的时候那原有的JavaScript代码还会渲染….

# 问题3, JavaScript 如果做差分的话是否也是通过使用bsdiff??