SAP UI5 应用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(延迟加载,懒加载)试读版
一套适合 SAP UI5 初学者循序渐进的学习教程
教程目录
-
SAP UI5 应用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)
-
SAP UI5 应用开发教程之三十四 - SAP UI5 应用基于设备类型的页面适配功能(Device Adaptation)
-
SAP UI5 应用开发教程之四十 - 如何制作包含了 component-preload.js 在内的 SAP UI5 发布版本
-
SAP UI5 应用开发教程之四十六 - 使用 Message Manager 实现开箱即用的验证(Validation)信息抛出
-
SAP UI5 应用开发教程之五十 - 如何使用 Cordova 将 SAP UI5 应用生成一个能在 Android 手机上安装的混合应用
-
SAP UI5 应用开发教程之五十一 - 如何使用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合应用
-
SAP UI5 应用开发教程之五十二 - 如何使用 SAP UI5 的标准控件结合 Cordova 插件调用手机摄像头进行条形码扫描
-
SAP UI5 应用开发教程之五十四 - 如何将本地 SAP UI5 应用配置到本地 Fiori Launchpad 中
-
SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上
-
SAP UI5 应用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)功能
-
SAP UI5 应用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创建,编辑和保存功能
-
SAP UI5 应用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现方式
-
SAP UI5 应用开发教程之七十四 - SAP UI5 应用使用 OData V4 显示 Table 表格数据的一个陷阱
说明
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。
在 Jerry 这篇文章 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者,向 SAP UI5 开发领域转型的不易,因此我在业余时间设计了这份适合 SAP UI5 初学者的学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。这些知识点可能不像我的 UI5 源码分析系列文章那么深入,但力求浅显易懂,便于 SAP UI5 初学者理解。
本教程每一个步骤的源代码,都存放在我的 Github 上,分别用文件夹 01,02,03 等等来标识,例如步骤 1 的源代码在这里。
每一个步骤均是前一步骤的基础上,添加了若干新特性。建议零基础或者对 SAP UI5 知之甚少的初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。
大家如果对教程的每个步骤有任何疑问,欢迎在教程对应的步骤文章里给我评论,进行留言。
笔者曾经发表过一些关于 SAP UI5 List 控件和 SAP UI5 Module Lazy Loading(又称延迟加载,懒加载)的实现机制:
延迟加载的对立面是贪婪加载(Eager Loading)。所谓贪婪加载,是应用初始化时,一次性加载尽可能多的业务数据,哪怕这些业务数据可能某些用户并不会真正使用到。
看个实际的例子。下面是本教程第 72 个步骤开发的页面:
SAP UI5 应用开发教程之七十二 - SAP UI5 页面路由的动画效果设置
在 Employee 的简历视图页面,有4个标签页可供点击。默认显示第一个标签页 Info
的内容。
步骤 72 采取的是默认的贪婪加载模式,即无论用户是否点击上图图例 2,3,4 对应的三个标签页,默认情况下,这4个标签页的内容(包括视图和业务数据),会在应用初始化时提前加载。
我们开启 SAP UI5 调试模式,来观察这个默认贪婪加载模式的效果。
在应用 url 后面加上 ?sap-ui-debug=true
的参数,重新启动应用:
http://localhost:8080/webapp/index.html?sap-ui-debug=true
Employee 的简历视图里,四个标签页虽然默认只打开了 Info 标签页,但是该页面打开的时候,后三个标签页对应的页面,其实也一并加载并渲染了。
这是因为这四个标签页的 Layout 设计,是静态嵌入在 Resume.view.xml
实现文件内部的,属于该 xml 文件的一部分。只要这个视图文件被加载,则 4 个标签页的全部内容,会随着 Resume.view.xml
一起被加载。
贪婪加载模式下,当从默认的 Info 标签页切换到其他三个标签页后,Network 观测不到任何数据加载,因为这些标签页对应的 Layout 布局信息,已经作为 Resume.view.xml
的一部分,在之前就已经加载了。
我们再看通过本步骤实现了 Lazy Loading 后的效果。
当且仅当
点击 Hobbies 标签时,才触发Hobbies
视图的加载;
当且仅当
点击 Notes 标签时,才触发Notes
视图的加载;
因此,SAP UI5 应用程序视图延迟加载的思路就是,将一个大而全的视图,按照业务将其进行细粒度拆分,形成小而专的若干视图片段,并且一次仅加载用户真正需要使用到的那些视图片段。
下面是具体的实现步骤。
相关文章
- 共赴“双碳”之约:SAP创建可持续发展新生态
- 关于 SAP UI5 所有控件的共同祖先 - sap.ui.base.ManagedObject
- 使用 SAP UI5 sap.ui.export.Spreadsheet API 进行 Excel 导出的一些限制
- SAP UI5 sap.ui.Device.media.RANGESETS 的使用介绍
- [ChatGPT 勘误] SAP UI5 的 sap.ui.base.Object
- SAP UI5 应用里 FlexBox 控件的设计原理
- SAP QM Quality Certificate系列2
- SAP UI5 应用如何加载自定义 Theme
- SAP MM 物料移动平均价的修改历史
- SAP UI5 sap.m.Table 实现响应式布局的两种配置模式
- SAP UI5 响应式表格 sap.m.Table 根据不同宽度的屏幕动态决定显示或隐藏 Column 的实现源代码讲解试读版
- 一个真实的 SAP 标准 UI5 应用的扩展开发项目(Extension Project)分享 - UI5 界面上新增订单创建者字段
- Google Tag Manager (GTM) 和 Adobe AEPL 在 SAP Spartacus 中的应用
- Oracle购买SAP: 开启新数据时代(oracle收购sap)
- SAP中使用FTP服务详解编程语言
- Sending email with attachment in SAP ABAP详解编程语言
- SAP在Linux系统的安装与使用(sap安装linux)
- SAP在Linux下的完美适配——利用SAP优势迎接业务发展新时代(saplinux)
- SAP与Oracle比较:优缺点及应用案例(saporacle对比)
- 对比:Oracle 与 SAP的优势(oracle 与 sap)
- 缓存使用SAP创建Redis缓存,实现高效稳定加速(sap如何创建redis)
- Oracle与SAP金蝶谁更具竞争力(oracle sap金蝶)
- 聘请高级Oracle与SAP顾问,拓展业务潜力(oracle sap顾问)