SAPUI5基础知识3 - 引导过程(Bootstrap)
1. 背景
在上一篇博客中,我们已经建立出了第一个SAPUI5项目,接下来,我们将为这个项目添加引导过程。
在动手练习之前,让我们先解释一下什么引导过程。
1.1 什么是引导过程?
在计算机科学中,引导过程也称之为“自举”(Bootstrapping),通常指的是启动操作系统的过程,也就是我们通常所说的"引导"或"启动"。
当你开启计算机时,引导程序(Bootstrap program)是第一个运行的程序。它负责初始化所有的硬件,然后加载操作系统内核并将控制权交给它。自举程序通常存储在只读存储器(ROM)或者电气可擦除可编程只读存储器(EEPROM)中,这样它就可以在电源开启时立即运行。
Bootstrapping这个词源于短语 “pull oneself up by one’s bootstraps”,意思是通过自我努力改善自己的状况。
1.2 SAPUI5的引导过程
在SAPUI5框架中,引导过程是指SAPUI5框架的初始化过程,它加载并初始化SAPUI5框架,创建应用程序实例,并运行应用程序。这个过程通常在HTML文件中的部分进行。
引导过程包括以下步骤:
- 加载SAPUI5库:通过
<script>
标签加载SAPUI5库的核心文件(如sap-ui-core.js) - 初始化SAPUI5:在
<script>
标签中设置data-sap-ui-libs属性,指定需要加载的SAPUI5库 - 初始化应用程序:在
<script>
标签中设置data-sap-ui-oninit属性,指定应用程序初始化时需要执行的函数 - 运行应用程序:在HTML文件的
<body>
部分创建应用程序的视图和控制器。
2. 练习 - 手动添加引导过程
2.1 增强SAPUI5项目
打开上一篇博客中SAPUI5项目的terminal,并执行ui5 use OpenUI5
命令,这个命令会通过通过添加UI5发行版的名称,来初始化ui5.yaml的框架段(framework segment)。当在浏览器中运行应用程序时,将使用该参数。
可以看到,执行完ui5 use OpenUI5
命令后,会更新ui5.yaml文件,添加添加UI5发行版的名称,也即指定了SAPUI5框架的版本。SAPUI5应用程序运行时,会使用此版本的SAPUI5框架。
framework:name: OpenUI5version: "1.124.0"
接下来,执行ui5 add sap.ui.core sap.m themelib_sap_horizon
命令,这个命令会通过通过添加依赖列表来增强ui5.yaml的框架段。
可以看到,执行完此命令后,会为ui5.yaml文件中添加SAPUI5框架的依赖库。目前,我们添加了3个库:sap.m , sap.ui.core 以及 themelib_sap_horizon。
framework:name: OpenUI5version: "1.124.0"libraries:- name: sap.m- name: sap.ui.core- name: themelib_sap_horizon
2.2 向index.html文件中添加引导过程
在这个步骤中,我们的目的是从UI5 Tooling提供的web服务器加载SAPUI5框架,并通过以下的配置选项初始化SAPUI5的核心模块:
<script>
标签的id
属性必须精确地为sap-ui-bootstrap
,以确保SAPUI5运行时的正确启动。<script>
标签的src
属性告诉浏览器在哪里找到SAPUI5核心库, 它初始化SAPUI5运行时并加载额外的资源,如在data-sap-ui-libs
属性中指定的库。- SAPUI5控件支持不同的主题。我们选择
sap_horizon
作为我们的默认主题。 - 我们指定了所需的UI库
sap.m
,它包含了我们在练习中需要的UI控件。 - 为了利用SAPUI5的最新功能,我们将兼容性版本定义为
edge
。 - 配置引导过程为异步运行
data-sap-ui-async="true"
,这意味着,SAPUI5资源可以在后台同时加载。 - 通过
data-sap-ui-onInit
属性以声明方式定义了最初要加载的模块。通过这种方式,我们避免了在HTML文件中直接执行JavaScript代码,这使应用更安全。 - 通过
data-sap-ui-resourceroots
属性告诉SAPUI5核心,zsapui5.test命名空间中的资源位于与index.html相同的文件夹中。
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>My SAPUI5 Test</title><scriptid="sap-ui-bootstrap"src="https://sdk.openui5.org/resources/sap-ui-core.js"data-sap-ui-theme="sap_horizon"data-sap-ui-libs="sap.m"data-sap-ui-compatVersion="edge"data-sap-ui-async="true"data-sap-ui-onInit="module:zsapui5/test/index"data-sap-ui-resourceroots='{"zsapui5.test": "./"}'></script>
</head>
<body><div>Hello World!</div>
</body>
</html>
注意:在
data-sap-ui-onInit
属性中声明的module,不能以 . 分割,要以 / 分割。当前项目引用的命名空间为zsapui5.test, 在此要写成zsapui5/test, /index是指定的文件名。
2.3 创建index.js文件
创建一个新的index.js
脚本文件,该脚本包含应用程序的逻辑。这样做是出于安全的考虑,避免在HTML文件中直接执行代码。
这个脚本将从index.html
中调用。在上个步骤中,我们在index.html
中以声明方式将此文件定义了作为一个模块 data-sap-ui-onInit="module:zsapui5/test/index"
。
这段js代码将会在“引导过程”完成后调用,显示一个alert(警报)消息。
2.4 运行应用程序
至此,我们可以通过npm start
命令,或通过点击NPM Script视图中的Run按钮来启动我们的应用程序。
方式1: 通过npm start
命令运行应用程序
方式2:通过NPM Script菜单运行应用程序
应用程序启动后,会打开一个新的窗口,可以看到我们的hello world!应用。
相较于上一个练习,我们的应用程序中,有了一个弹出窗口。
启动应用程序后,服务器将一直运行,直到手动停止它或在BAS中关闭dev space。通过快捷键ctrl + c可以关停web server网络服务器。
若不小心关闭的应用程序的网页,可以通过运行
ports: preview
命令,然后点击端口号来再次打开本地网络服务器,然后选择index.html来进行查看。
点击index.html再次打开应用程序对应的网页。
3. 小结
本文介绍了SAPUI5引导过程的概念,并通过示例程序,展示了为SAPUI5应用程序添加引导过程的步骤。希望本文对你有帮助!
相关文章:

SAPUI5基础知识3 - 引导过程(Bootstrap)
1. 背景 在上一篇博客中,我们已经建立出了第一个SAPUI5项目,接下来,我们将为这个项目添加引导过程。 在动手练习之前,让我们先解释一下什么引导过程。 1.1 什么是引导过程? 在计算机科学中,引导过程也称…...

ABAP 借助公司封装的钉钉URL,封装的RFC给钉钉发送消息
FUNCTION ZRFC_BC_SMSSEND_DINGTALK. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(DESTUSRID) TYPE CHAR255 *" VALUE(CONTENT) TYPE CHAR255 *&quo…...

登录校验及全局异常处理器
登录校验 会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束.在一次会话中可以包含多次请求和响应会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话请求间共享数据会话跟踪方案 客户端…...

计算机视觉与模式识别实验1-2 图像的形态学操作
文章目录 🧡🧡实验流程🧡🧡1.图像膨胀2.图像腐蚀3.膨胀与腐蚀的综合使用4.对下面二值图像的目标提取骨架,并分析骨架结构。 🧡🧡全部代码🧡🧡 🧡🧡…...

【前端每日基础】day31——uni-app
uni-app 开发详细介绍 基本概念 uni-app:uni-app 是一个使用 Vue.js 开发多端应用的框架,可以编译到微信小程序、支付宝小程序、百度小程序、字节跳动小程序、H5、App等多个平台。 跨平台:一次开发,多端部署。通过条件编译实现多…...

云动态摘要 2024-05-31
给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [1.5折起]年中盛惠--AI分会场 腾讯云 2024-05-30 人脸核身、语音识别、文字识别、数智人、腾讯混元等热门AI产品特惠,1.5折起 云服务器ECS试用产品续用 阿里云 2024-04-14 云…...

Oracle数据块如何存储真实数据
上周休假了几天,颓废了,没有输出。今天写一点内容。 先抛出一个问题。表中的数据在Oracle数据块中是如何存储的呢?今天简单说一下这个问题。通常数据库中的表会存储字符,数字,日期 这3种常见的数据类型。下面的例子就用这3种数据类型作说明 首先,Oracle数据块底层存储这…...

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第30课-门的移动动画
【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第30课-门的移动动画 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…...

智能化改造给企业带来的实际效果
1. 提高生产效率:通过自动化和智能化的生产线,减少人工操作,显著提升单位时间内的生产量。 2. 提升产品质量:智能化改造通过精确控制生产过程,减少人为错误,提高产品的一致性和可靠性。 3. 降低生产成本&am…...

深度学习-语言模型
深度学习-语言模型 统计语言模型神经网络语言模型语言模型的应用序列模型(Sequence Model)语言模型(Language Model)序列模型和语言模型的区别 语言模型(Language Model)是自然语言处理(NLP&…...

微型导轨在自动化制造中有哪些优势?
微型导轨在自动化制造中发挥重要作用,能够满足自动化设备制造中对精度要求较高的工艺环节。适用于自动装配线、自动检测设备和机器人操作等环节,推动了行业的进步与发展。那么,微型导轨在使用中有哪些优势呢? 1、精度高和稳定性强…...

探索气象数据的多维度三维可视化:PM2.5、风速与高度分析
探索气象数据的多维度可视化:PM2.5、风速与高度分析 摘要 在现代气象学中,数据可视化是理解复杂气象模式和趋势的关键工具。本文将介绍一种先进的数据可视化技术,它能够将PM2.5浓度、风速和高度等多维度数据以直观和动态的方式展现出来。 …...

【传知代码】双深度学习模型实现结直肠癌检测(论文复现)
前言:在医学领域,科技的进步一直是改变人类生活的关键驱动力之一。随着深度学习技术的不断发展,其在医学影像诊断领域的应用正日益受到关注。结直肠癌是一种常见但危害极大的恶性肿瘤,在早期发现和及时治疗方面具有重要意义。然而…...

平衡二叉树的应用举例
AVL 是一种自平衡二叉搜索树,其中任何节点的左右子树的高度之差不能超过 1。 AVL树的特点: 1、它遵循二叉搜索树的一般属性。 2、树的每个子树都是平衡的,即左右子树的高度之差最多为1。 3、当插入新节点时,树会自我平衡。因此…...

一键安装 HaloDB 之 Ansible for Halo
↑ 关注“少安事务所”公众号,欢迎⭐收藏,不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽,国产数据库!Halo DB! 三步走,Halo DB 安装指引 以及 HaloDB 的 Oracle 和 MySQL 兼容模式: …...

el-table的上下筛选功能
el-table的sort-change事件可以监听到筛选的事件; 会返回prop属性和order排序的顺序; html: <el-table :data"tableData" border style"width: 100%" :cell-style"{ textAlign: center }"header-cell-c…...

【手撕面试题】Vue(高频知识点一)
每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么&…...

LabVIEW车轮动平衡检测系统
LabVIEW车轮动平衡检测系统 随着汽车行业的快速发展,车轮动平衡问题对乘坐舒适性、操控稳定性及安全性的影响日益凸显,成为了提高汽车性能的一个关键环节。传统的检测系统因精度低、成本高、操作复杂等问题,难以满足现代汽车行业的需求。开发…...

【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记(保姆级别的,非常详细)
六,selenium 想要下载PDF或者md格式的笔记请点击以下链接获取 python爬虫学习笔记点击我获取 Scrapyselenium详细学习笔记点我获取 Python超详细的学习笔记共21万字点我获取 1,下载配置 ## 安装: pip install selenium## 它与其他库不同…...

【Linux】Linux环境基础开发工具_3
文章目录 四、Linux环境基础开发工具2. vim3. gcc和g动静态库的理解 未完待续 四、Linux环境基础开发工具 2. vim vim 怎么批量化注释呢?最简单的方法就是在注释开头和结尾输入 /* 或 */ 。当然也可以使用快捷键: Ctrl v 按 hjkl 光标移动进行区域选择…...

数字水印 | 图像噪声攻击(高斯/椒盐/泊松/斑点)
目录 Noise Attack1 高斯噪声(Gaussian Noise)2 椒盐噪声(Salt and Pepper Noise)3 泊松噪声(Poisson Noise)4 斑点噪声(Speckle Noise)5 完整代码 参考博客:Python…...

LeetCode-47 全排列Ⅱ
LeetCode-47 全排列Ⅱ 题目描述解题思路代码说明 题目描述 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 : 输入:nums [1,1,2]输出: [[1,1,2], [1,2,1], [2,1,1]] b站题目解读讲的不好&…...

list 的实现
目录 list 结点类 结点类的构造函数 list的尾插尾删 list的头插头删 迭代器 运算符重载 --运算符重载 和! 运算符重载 * 和 -> 运算符重载 list 的insert list的erase list list实际上是一个带头双向循环链表,要实现list,则首先需要实现一个结点类,而一个结点需要…...

一个程序员的牢狱生涯(47)学法
星期一 学法 二铺不知道什么时候走到了我的身边,向我说道,这是二铺在我进来号子后主动过来和我说话。 我听到二铺这声突兀的说话后,抬起头。这时我才看到,除了二铺,还有六子、棍子都围在我的身边,看着我。虽然六子和棍子依旧一副‘吊儿郎当’的样子,但我从他们几个的眼神…...

微信小程序-页面导航
一、页面导航 页面导航指的是页面之间的相互跳转,例如:浏览器中实现页面导航的方式有如下两种: 1.<a>链接 2.location.href 二、小程序中实现页面导航的两种方式 1.声明式导航 在页面上声明一个<navigator>导航组件 通过点击…...

计算机网络- 特定服务类型(Type of Service, TOS) 服务质量(Quality of Service, QoS)
特定服务类型(Type of Service, TOS) 具有特定服务类型(Type of Service, TOS)的数据包是指在IP头部中包含特定TOS字段设置的数据包。TOS字段用于指示数据包的服务质量要求,如延迟、吞吐量、可靠性等。现代IP网络通常…...

2.6 Docker部署多个前端项目
2.6 Docker部署多个项目 三. 部署前端项目 1.将前端项目打包到同一目录下(tcm-ui) 2. 部署nginx容器 docker run --namenginx -p 9090:9090 -p 9091:9091 -d nginx3. 复制nginx.conf文件到主机目录 docker cp nginx:/etc/nginx/nginx.conf /root/ja…...

如何格式化只读U盘?
U盘只读无法格式化,该怎么处理?别担心!本文将向你提供一些实用方法,助你解决U盘写保护的难题。这些方法能有效帮助你解除U盘的只读状态,从而可以顺利进行格式化和其他操作。 不能格式化只读U盘 “我购买了一个U盘&…...

【并查集】专题练习
题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 模板 836. 合并集合 - AcWing题库 #include<bits/stdc.h> using lllong long; //#define int ll const int N1e510,mod1e97; int n,m; int p[N],sz[N]; int find(int a) {if(p[a]!a) p[a]find(p[a]);return p[a…...

服装连锁店收银系统需要具备的五大功能
当今服装连锁店在市场竞争中需要拥有高效的收银系统来提升业务效率和顾客满意度。以下是服装连锁店收银系统需要具备的五大功能: 首先,完善的商品管理功能是至关重要的。这包括商品信息的录入、管理、更新和查询。收银系统应该能够快速而准确地识别商品&…...