Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

业务外壳分离与 App 嵌入的坑

  如果只考虑 Web,程序只在浏览器上跑,那怎么做都行。但 Web 程序经常会被嵌入各个终端使用,如果直接用单页模式去把一整套 Web 程序实现出来就会让那些嵌入 Web 页面的终端跪在性能上。是不是可以把业务程序与外壳程序分离出来单独实现呢?
  App 其实是一个外壳,里面嵌入各种页面级的东西。那么我们是不是也可以在 Web 上实现一个这样的「壳」,把路由系统、转场特效等一系列单页模式的实现在这个壳上提供。业务功能做成互不相干的组件,然后根据需求业务需求嵌入 App 和 Web 的壳中。这种模式解决了页面太重引起的嵌入性能问题,但也存在很多待填的坑。

App 如何嵌入 Web 组件?

  Web 组件也许就是一个 HTML 片段,要单独使用的话就就得给这些片段包裹一层文档。虽然勉强能用,但还是觉得这种做法很恶心。

通用如何解决?

  各个页面需要可以单独可以执行的话通用问题会很棘手。Web 这边其实并不难解决,AMD 之类依赖管理就足够了,因为我们的壳还是 Web,程序跑在同一个页面上,依赖也可以共享。但其他终端对每个页面的使用也许就都是独立的,分别加载依赖的话对性能会有一定影响。

页面间如何数据通信?

  同页面的 Web 程序通信是很容易的。但被嵌入到 App 中后所有的部分都是独立的,直接通信基本不可能。获取要用到 Web 的一些本地存储机制来作通信?又或者 App 直接提供一套机制?

:joy:

  其实吧,App 嵌入 Web View 的做法是很 low 的,因为性能什么的会踩到坑。所以大家都希望直接通过某种东西动态定制 App 内的 UI。React-Native 这样的方向也许才是正确的。但目前这个领域还有待摸索,反正目前 Web View 嵌入是一种比较简单粗暴的方案,只要不是交互太强的东西,Web View 的性能还是可以接受的。

网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^