2019-2021 美团技术年货 前端篇进行二次处理:遍历静态资源产物,增加文件 Hash(文件内容 MD5 值),并更新资 源的引用;同时通过定制 Dart-SDK,修改了 main.dart.js、字体等静态资源的加载 逻辑,使其支持 CDN 资源加载。 更详细的方案设计请参考《Flutter Web 在美团外卖的实践》一文。下面我们重点介 绍 main.dart.js 分片相关的一些优化策略。 4.2.1 Lazy Loading Flutter 官方提供 下图为预缓存的整体方案设计: 48 > 2021年美团技术年货 图 15 预缓存方案设计 编译阶段 编译阶段会扩展现有的发布流水线,在 flutter build 之后增加 prefetch build 作业, 这样 build 之后就可以对产物目录进行遍历和筛选,得到我们所需资源进而生成云端 JSON,为运行阶段提供数据基础。下面的流程图为编译阶段的详细方案设计: 图 16 预缓存编译阶段 HTTP XHR 进行缓存资源进行请求,利用浏览器本身的缓 存策略,把其他业务的资源文件写入。当用户访问已命中缓存的页面时,资源已被提 前加载,这样可以有效地减少首屏的加载时间。下图为运行阶段的详细方案设计: 图 18 预缓存运行阶段 前端 < 51 在监听阶段,我们可以获取到页面的首屏渲染完成的时机,会获取到云端 JSON,首 先判断该项目的缓存是否为启用状态。当该项目可用时,会根据全局变量0 码力 | 738 页 | 50.29 MB | 1 年前3
Hello 算法 1.1.0 Dart版编码的字符串上,很多字符串操作(如分割、连接、插入、删除等)更容易进行。 在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有可能0 码力 | 378 页 | 18.45 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 第 3 章 数据结构 hello‑algo.com 63 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有可能0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版编码的字符串上,很多字符串操作(如分割、连接、插入、删除等)更容易进行。 在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有可能0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Dart 版编码的字符串上,很多字符串操作(如分割、连接、插入、删除等)更容易进行。 在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有可能0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.2.0 简体中文 JavaScript 版UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 第 3 章 数据结构 www.hello‑algo.com 63 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有可能0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,其涉及到许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 第 3 章 数据结构 hello‑algo.com 63 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有可能0 码力 | 376 页 | 17.57 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,其涉及到许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0b5 Dart版编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,其涉及到许多因素。 ‧ Java 的 String 类型使用 UTF‑16 编码,每个字符占用 2 字节。这是因为 Java 语言设计之初,人们认 为 16 位足以表示所有0 码力 | 376 页 | 30.67 MB | 1 年前3
共 12 条
- 1
- 2













