加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

移动开拓中的Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台……

发布时间:2019-08-21 22:13:36 所属栏目:业界 来源:朱德权
导读:移动开拓规模连年来已经逐渐辞别了蛮横发展的时期,进入了相对成熟的期间。而一向以来 Native 和 Web 的争论从未遏制,通过开拓者孜孜不倦的全力,Web 的服从和 Native 的体验也一向在寻求着均衡。本文聚焦 iOS 开拓和 Web 开拓的交错点,内容涉及到 iOS

跟着 Google 开源了基于 Dart 说话的 Flutter,跨平台的技能又进入了一个新的成长阶段。对付传统的跨平台技能来讲,各个公司以 JavascriptCore 作为通讯桥梁,环绕着 DSL 的理会、要领表的注册、模块注册通讯、参数转达的计划以及 OC Runtime 的运用等差异偏向,封装成了一个又一个跨平台的项目。

移动开拓中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台……

而在个中,以 JavaScript 作为前端 DSL 的跨平台技能方案里,Facebook 的 react-native 以及阿里(今朝托管给了 Apache 软件基金会)的 Weex 最为风行。在收集上两者的较量文章有许多,齐集在进修本钱、框架生态、代码侵入、机能以及包巨细等方面,各个营业可以按照本身的重点选择公道的技能布局。

而不管是 react-native 照旧 Weex,Web 和 Native 的通讯桥梁如故是 JavascriptCore。

  1. //weex 举例 
  2. JSValue* (^callNativeBlock)(JSValue *, JSValue *, JSValue *) = ^JSValue*(JSValue *instance, JSValue *tasks, JSValue *callback){ 
  3.     ... 
  4.   return [JSValue valueWithInt32:(int32_t)callNative(instanceId, tasksArray, callbackId) inContext:[JSContext currentContext]]; 
  5. }; 
  6. _jsContext[@"callNative"] = callNativeBlock;  

和热修复技能一样,跨平台又是一个复杂的技能系统,JavascriptCore 仅仅是作为整个别系运转中的一个小小的部门,而整个跨平台的技能方案就必要另开多个篇幅举办先容了。

iOS 中 Web 相干优化计策

跟着 Web 技能的不绝进级以及 App 动态性营业需求的增多,越来越多的 Web 页面插手到了 iOS App 傍边,与之对应的,首屏展示速率体验这个至关重要的规模,也成为了移动客户端中 Web 营业最重要的优化偏向。

1. 差异营业场景的优化计策

对付纯真的 Web 页面来说,业界早已有了公道的优化偏向以及成熟的优化方案,而对付移动客户端中的 Web 来说,开拓者在举办单一的 Web 优化时,还可以通过优化 Web 容器以及 Web 页面中数据加载方法等多个途径做出优化。

以是对付 iOS 开拓中的优化来说,就是通过 Native 和 Web 两个维度的优化要害渲染路径,担保 WebView 优先渲染完毕。由此我们梳理了通例 Web 页面整体的加载次序,从中找出要害渲染路径,继而逐个说明、优化。

移动开拓中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台……

2. Web 维度的优化

通用 Web 优化

对付 Web 的通用优化方案,一样平常来说在收集层面,可以通过 DNS 和 CDN 技能镌汰收集耽误、通过各类 HTTP 缓存技能镌汰收集哀求次数、通过资源压缩和归并镌汰哀求内容等。在渲染层面可以通过精简和优化营业代码、按需加载、防备阻塞、调解加载次序优化等等。对付这个老生常谈的题目,业内已经有异常成熟和完备的总结,好比可以参考《Best Practices for Speeding Up Your Web Site》。

其余

离开较为通用的优化,在对代码侵入宽容度较高的场景中,开拓者对 Web 优化有着更为激进的做法。譬喻在 VasSonic 中,除了 Web 容器复用、数据模板疏散、预拉取和通用的优化方法外,还通过自界说 VasSonic 标签将 HTML 页面举办分别,分段举办缓存节制,以到达更高的优化结果。

3. Native 维度的优化

容器复用和预热

WKWebView 固然 JIT 大幅优化了 JS 的执行速率,可是纯真的加载渲染 HTML,WKWebView 比 UIWebView 慢了许多。按照渲染的差异阶段别离对耗时举办测试,同时比拟 UIWebView,我们发明 WKWebView 在初始化及渲染开始前的耗时较多。

移动开拓中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台……

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读