Sapui5 是否真的需要使用“函数”侦听全局初始化事件;“附件”;功能?
我在许多文章中读到,“监听全局init事件是一种很好的做法,以便仅在触发事件后触发应用程序逻辑”。但我尝试了其他方法,仍然没有问题发生。当我选中“网络”选项卡“全部”时,不管代码的位置如何,都会首先加载核心库。然后加载依赖于库的代码 我试图寻找我的答案,但没有得到一个明确的答案。我尝试使用我编写的示例代码来检查它。但是没有成功Sapui5 是否真的需要使用“函数”侦听全局初始化事件;“附件”;功能?,sapui5,Sapui5,我在许多文章中读到,“监听全局init事件是一种很好的做法,以便仅在触发事件后触发应用程序逻辑”。但我尝试了其他方法,仍然没有问题发生。当我选中“网络”选项卡“全部”时,不管代码的位置如何,都会首先加载核心库。然后加载依赖于库的代码 我试图寻找我的答案,但没有得到一个明确的答案。我尝试使用我编写的示例代码来检查它。但是没有成功 宠物 var oImage2=新的sap.m.Image({ src:“img/cat_sad.jpg”, 装饰性:假, alt:“悲伤的猫” }); oImage2.
宠物
var oImage2=新的sap.m.Image({
src:“img/cat_sad.jpg”,
装饰性:假,
alt:“悲伤的猫”
});
oImage2.地点(“内容”);
警报(“不同的脚本标签”);
sap.ui.getCore().attachInit(函数()){
警报(“内部附件”);
var oImage1=新的sap.m.Image({
src:“img/dog_sad.jpg”,
装饰性:假,
alt:“悲伤的狗”
});
oImage1.地点(“内容”);
});
警报(“外部附件”);
我想知道,如果浏览器已经为我们相应地对请求进行了优先级排序,为什么我们被告知要遵循此良好做法?这不仅是一个“良好做法”,而且是绝对必要的,以便启用
激活模块的异步加载需要侦听init
事件。否则,应用程序将崩溃,因为您试图从sap.m
访问Image
,尽管该库尚未加载:
var oImage2=new sap.m.Image(/*…*/);//未捕获类型错误:无法读取未定义的属性“Image”!
如果您想知道为什么异步加载很重要,请比较以下两种情况: 1.不收听
init
(不可能有aync):
- 依赖库和其他模块按顺序逐个检索
- 它使用已弃用的
- 当应用程序加载时,浏览器通常会冻结
- 用户通常需要等待更长的时间,直到他们看到一些东西
init
):
- 并行异步检索文件
- 没有冻结行为。