云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_鹿鼎记周星驰百度云_新注册优惠

小七 141 0

在我上一篇文章介绍了如何提高SAPUI5应用程序启动性能的一些基本方面之后,我将介绍一些更高级的主题,这些主题应该适用于几乎所有的应用程序https://blogs.sap.com/2016/10/29/sapui5-application-startup-performance-best-practices/

基本设置

我们将从一个典型的应用程序开始,您可以在这里下载:https://github.com/frdrcbrg/ui5-performance-advanced

我会将此应用程序部署到离我所在位置较远的HCP,以获得延迟如何影响此应用程序加载时间的真实印象。

应用程序本身将连接到Northwind OData服务(V2–只读)。有关此服务的更多信息,请访问:

应用程序启动时,数据将直接显示在应用程序的首页。这是最终应用程序的截图:

这是应用程序结构。

这是一个典型的应用程序结构(与我们在第一篇文章中设置的应用程序相比:https://blogs.sap.com/2016/10/29/sapui5-application-startup-performance-best-practices/

让我们看看这个应用程序如何正确运行现在:

注意:29个请求,在3,5s内完成(未缓存)。

此应用程序已经使用了上面链接的帖子中描述的所有性能优化,仍有一些改进空间。让我们来看看一些常见的问题并逐一解决。异步组件加载

现代UI5应用程序应该尝试完全删除同步处理(这还不完全可能,但我们正在努力)。

但是组件可以异步加载,这是新的最佳实践方法。这是最新的索引.html内联脚本内容:

让我们试着理解这里发生了什么。

我们首先创建一个组件容器(渲染组件所需的容器)。接下来,我们将组件容器传递给Shell控件并直接开始呈现Shell(使用placeAt函数)。这意味着,Shell将很早就可见了

接下来我们创建组件实例,指定异步行为(异步:true)还要确保SAPUI5尝试首先加载清单.json(马尼)第一:对). 这一点很重要,因为此文件包含所有依赖项的列表,这些依赖项可以与组件预加载和其他文件并行加载。

组件提供了一个承诺,它将最终解决问题,使我们有机会最终将组件容器与此组件实例连接起来。此时,大数据存储技术,组件的内部内容将被呈现。

总之:

我们现在异步加载组件我们还将与组件本身并行加载所有相关的依赖项(基于清单依赖项)在异步加载其他文件时,淘客网站,人工智能研究,Shell的呈现已经可以开始

注意:首先是manifest,然后是component preload

2。语言回退导致404属性文件

我创建的应用程序没有翻译,目前只有一个i18n.properties文件。我只是不打算让它成为一个多语言应用程序,这对于独立应用程序来说是非常典型的。然而,当这样的应用程序部署在HCP上时,这通常会导致一个问题,因为平台在服务器上不执行所谓的语言回退。

让我们再仔细看看我的i18n文件的网络跟踪:

Oops。我们刚刚花了大约560毫秒来加载这个文件,因为发出了两个额外的请求并导致404(顺便说一句,这不会被缓存,国内云服务器,因此每次都会影响我们的性能!)。

这是因为SAPUI5默认主要查看浏览器中的语言集,在我的情况下,它恰好是enïUS。运行时将尝试加载最佳匹配,如果找不到该文件,则返回到纯英语(en)。由于此文件也不是已部署应用程序的一部分,最后一个备用方法是加载纯i18n.properties文件。

我们可以通过选择首选语言并正确设置应用程序轻松解决此问题。

第一步,让我们将i18n文件重命名为i18n_en.属性:

下一步,让我们配置SAPUI5从现在开始只使用这种语言:

注意:数据sap ui language="en"

有了这个,让我们再次检查网络跟踪:

好的,好多了。我们刚刚消除了延迟,节省了340–520ms的启动时间(分别缓存未缓存的行为)。

3。OData Model V2的使用

上面的应用程序已经使用了基于中的配置的自动模型创建功能清单.json文件。设置如下:

注:类型"sap.ui.model模型.小田.小田模型"

上述名称空间表示将使用过时的OData模型实现。此实现有几个默认值,例如,导致对元数据文件和其他操作的同步请求,这些请求在更新的实现中更改,可以与相应的命名空间一起使用:

sap.ui.model模型.odata.v2.ODataModel文件https://sapui5.hana.ondemand.com/sdk/#docs/api/symbols/sap.ui.model.odata.v2.ODataModel.html

让我们看看这是如何影响我们的时间线:

注意:$元数据是同步的,在接近220毫秒的时间内没有并行请求或JS处理可能:

让我们通过引用我们的清单.json(或者,您也可以省略名称空间–现在它是默认名称):

这是新的网络跟踪:

注意:并行请求到$metadata请求。

这对于额外的JS处理或并行请求是220ms的。是 啊!

4. 使用模型预加载特性