日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

什么是 SAP UI5 的 Hybrid Web Containers

發(fā)布時(shí)間:2023/12/19 ChatGpt 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是 SAP UI5 的 Hybrid Web Containers 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們可以將移動(dòng)應(yīng)用程序開發(fā)為包含原生應(yīng)用程序包裝器(例如 PhoneGap),和用于在用戶界面上顯示內(nèi)容的 HTML 查看器的混合應(yīng)用程序(Hybrid Web Container)。

混合應(yīng)用的優(yōu)勢(shì)在于可以在應(yīng)用商店中發(fā)布它們。此外,通過將應(yīng)用程序代碼和 SAP UI5 庫文件嵌入到混合容器中,用戶只需安裝一次文件,無需每次啟動(dòng)應(yīng)用程序時(shí)下載。

但是庫的大小變得很重要,因?yàn)槊總€(gè)用戶都必須安裝文件,而在 Web 應(yīng)用程序中,庫部署在服務(wù)器上,用戶只需要在運(yùn)行時(shí)下載庫的所需部分。

要在混合應(yīng)用程序中包含需要的資源,可以使用靜態(tài)移動(dòng)運(yùn)行時(shí)包 openui5-runtime-mobile*.zip。該包不包含在 SAP UI5 中,而是包含在開源版本 OpenUI5中。

這些包的庫大小相當(dāng)小,因?yàn)樽钣锌赡懿恍枰膬?nèi)容已被刪除,例如測(cè)試頁面。一個(gè) package 包含所有 JavaScript 文件的調(diào)試版本以及優(yōu)化和最小化的版本。因此,可以將包用于生產(chǎn)用途以及調(diào)試目的。要在應(yīng)用程序包裝器(例如 PhoneGap)中使用此包,請(qǐng)將包解壓縮到應(yīng)用程序開發(fā)項(xiàng)目的相應(yīng)資源位置。然后,應(yīng)用程序包裝器構(gòu)建包含文件并使其在運(yùn)行時(shí)可用。

為了控制文件構(gòu)建出的包文件尺寸,它只包含最有可能使用的控件庫,而不是所有控件庫。根據(jù)混合應(yīng)用程序的不同,可能需要通過從運(yùn)行時(shí)的相應(yīng)文件夾復(fù)制庫來添加庫,或者刪除庫以減小包大小,從而減少用戶的安裝大小。

該文件包含以下控制庫:

  • sap.f

  • sap.m

  • sap.tnt

  • sap.ui.core

  • sap.ui.layout

  • sap.ui.suite

  • sap.ui.unified

  • sap.uxap

包含或不包含哪些庫的決定可能不存在絕對(duì)客觀的標(biāo)準(zhǔn)。它僅基于經(jīng)驗(yàn)法則,并且無論如何都需要對(duì)許多應(yīng)用程序進(jìn)行調(diào)整。

此外,移動(dòng)/混合包不包括通常不需要的某些類型的文件。每個(gè)客戶實(shí)際的應(yīng)用場(chǎng)合都可能會(huì)有所不同,因此需要根據(jù)特定應(yīng)用的要求添加相應(yīng)的文件。本來 SAP UI5 應(yīng)用里設(shè)計(jì)出的 library-preload.js,包含了該 library 里的所有控件。采用這種文件來加載庫,可以減少 HTTP 請(qǐng)求數(shù)量。

但是 SAP UI5 的 Hybrid Web Containers 不再需要 library-preload.js 文件,因?yàn)樵诨旌蠎?yīng)用程序的執(zhí)行環(huán)境里是從本地加載庫文件,沒有任何的 HTTP 延遲。SAPUI5 默認(rèn)會(huì)嘗試訪問它們,因此您可能會(huì)在日志文件或開發(fā)人員工具中看到加載這些文件的嘗試失敗。但是,這些錯(cuò)誤消息并沒有什么影響,您可以通過聲明不存在此類文件并在 SAPUI5 引導(dǎo)腳本標(biāo)記中設(shè)置以下配置來消除它們:

data-sap-ui-preload=""

package 尺寸的優(yōu)化

盡管靜態(tài)包足夠小,可以包含在混合應(yīng)用程序中,但仍然可以通過刪除其他文件來進(jìn)一步減小大小并優(yōu)化特定應(yīng)用程序的內(nèi)容。以下列表提供了一些示例:

  • 如果不需要相應(yīng)的控制庫,您可以刪除所有庫文件夾。例如,在 OpenUI5 版本中可以刪除 suite 和 unified 文件夾。

  • 在每個(gè)/resources/sap/* … */themes文件夾中,可以刪除所有主題文件夾,但正在使用的主題文件夾除外。

device ready event

混合 Web 容器需要一些時(shí)間進(jìn)行初始化。在此期間,AJAX 請(qǐng)求的發(fā)送被阻止,這意味著一旦發(fā)送 AJAX 請(qǐng)求,JavaScript 代碼就會(huì)停止,代碼執(zhí)行也會(huì)停止。這會(huì)導(dǎo)致 UI 處于 freeze 狀態(tài)。

SAPUI5 中的 OData 模型在內(nèi)部使用 AJAX 請(qǐng)求,因此必須在混合容器準(zhǔn)備好后再進(jìn)行 OData 模型初始化,以避免用戶界面凍結(jié)。初始化后,混合 Web 容器會(huì)觸發(fā)一個(gè) device ready 事件。為了避免 UI freeze,請(qǐng)將創(chuàng)建 OData 模型并進(jìn)行模型綁定的相關(guān)代碼,移至 device ready 事件偵聽器中。

例子:

<!-- put the following code in the beginning of the application code --> function appReady(){sap.ui.getCore().setModel(new sap.ui.model.odata.v2.ODataModel(<ODATA_URL>)); } <!-- bind to the deviceready event --> document.addEventListener("deviceready", appReady, false); </script>

跨域限制(Cross Domain Restrictions)

如果使用 AJAX 從外部服務(wù)器或服務(wù)加載數(shù)據(jù),則必須在混合 Web 容器內(nèi)配置外部域,以使 AJAX 請(qǐng)求通過跨域限制。

總結(jié)

以上是生活随笔為你收集整理的什么是 SAP UI5 的 Hybrid Web Containers的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。