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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一些SAP UI5的控件无法按照预期渲染的错误分析方法和解决方案

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些SAP UI5的控件无法按照预期渲染的错误分析方法和解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我在index.html里寫了下面這段代碼:

'var oButton1 = new sap.m.Button({text : "Button",tooltip : "This is a test tooltip",press : function() {alert('Alert from ' + oButton1.getText());}});oButton1.placeAt("content");'

但是在服務器上運行這個index.html,發現在正式模式下遇到下面這個錯誤消息:

“Uncaught TypeError: Cannot read property ‘Button’ of undefined”


但奇怪的是,在調試模式下是沒問題的。

處理此類問題的經驗是,一般此類涉及到在debug mode能工作(不能工作), 但是正常情況下不能工作(能工作)的issue,不管任何語言,都和runtime執行時序有關。

這個問題的root cause是,在new sap.m.Button時,sap.ui.core, sap.m還沒有被load下來,執行new sap.m.Button這句就會報錯,找不到。具體如下:

(1) 為什么非debug模式下,sap.ui.core和sap.m沒有被load下來呢?

非debug模式下,會根據preload標識決定load是同步還是異步,這里設置的是async:


所以,在new sap.m.Button時,sap.ui.core, sap.m還沒有被load下來。
如果preload被設置為 sync ,就會看到button被正常render。

(2) 為什么debug模式下,new sap.m.Button時,sap.ui.core和sap.m已經被load下來呢?
debug模式下,會使用requireModule load lib:

不會根據preload標識決定load是同步還是異步:

這個issue可以引申出另一個知識點,如果我就要求data-sap-ui-preload=“async”,有沒有辦法保證在非debug mode下,每次運行應用仍然成功呢?

另一個問題:這個bootstrap的id能改成其他比如"helloWorld"么?為什么?

因為已經Src已經滿足滿足預期的正則表達式,執行不到下面的分支了。

總結

以上是生活随笔為你收集整理的一些SAP UI5的控件无法按照预期渲染的错误分析方法和解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。