Open UI5 complex parser 只有在 1.26 版本之后才能使用

举报
Jerry Wang 发表于 2023/03/20 10:15:27 2023/03/20
【摘要】 下面是一个例子:语义是,complex Parser 功能,只能在 1.26 及其之后的版本使用:if ( config["bindingSyntax"] === "default" ) { config["bindingSyntax"] = (config.getCompatibilityVersion("OpenCoreBindingSyntax").compareTo("1.26...

下面是一个例子:

语义是,complex Parser 功能,只能在 1.26 及其之后的版本使用:

if ( config["bindingSyntax"] === "default" ) {
				config["bindingSyntax"] = (config.getCompatibilityVersion("OpenCoreBindingSyntax").compareTo("1.26") < 0) ? "simple" : "complex";
			}

版本号是 1.26:

解析出主版本号为1,次版本号为 26:

当前次版本号是 110:

当前 Open UI5 版本的次版本号是怎么求出来的?

Open UI5 默认的 jQuery 版本是 3.6.0,如果不是这个版本,在 console 会打印警告消息。

Add all defined events to the event infrastructure

jQuery has inversed the order of event registration when multiple events are passed into jQuery.on method from version 1.9.1.

UIArea binds to both touchstart and Opentouchstart event and Opentouchstart internally also binds to touchstart event.

Before jQuery version 1.9.1, the touchstart event handler is called before the Opentouchstart event handler and our flags (e.g. _Openui_handledByUIArea) still work. However since the order of event registration is inversed from jQuery version 1.9.1, the Opentouchstart event handler is called before the touchstart one, our flags don’t work anymore.

Therefore jQuery version needs to be checked in order to decide the event order in ControlEvents.events.

将所有定义的事件添加到事件基础结构

从 1.9.1 版本开始,当多个事件被传递到 jQuery.on 方法时,jQuery 已经颠倒了事件注册的顺序。

UIArea 绑定到 touchstart 和 Opentouchstart 事件,Opentouchstart 在内部也绑定到 touchstart 事件。

在 jQuery 版本 1.9.1 之前,touchstart 事件处理程序在 Opentouchstart 事件处理程序之前被调用,我们的标志(例如 _Openui_handledByUIArea)仍然有效。 然而,由于事件注册的顺序与 jQuery 1.9.1 版相反,Opentouchstart 事件处理程序在 touchstart 事件处理程序之前被调用,我们的标志不再起作用。

因此需要检查 jQuery 版本以确定 ControlEvents.events 中的事件顺序。

这就是上图代码检查的用途所在。
默认的 compatVersion 值为 edge

默认的 Open UI5 base version 为 1.14:

每个版本的 Open UI5 SDK 文件,在 configuration.js 文件里硬编码了当前版本:

即在调试模式下 Technical Information Dialog 对话框里看到的:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。