我正在使用ODataModel处理自定义SAPUI5应用程序,为此我必须对将在List控件中显示的某些字段进行格式化。
我需要知道下面提到哪种方法是好的w.r.t. app的表现。
1)使用Formatter.js文件并为每个字段编写每个方法以进行格式化是一个好主意吗?
示例 -
There are 2 fields which should be formatted before showing in UI and hence 2 formatter function.
2)在将模型绑定到列表之前 - 使用每行的循环进行格式化。 示例 -
Loop at OData.
--do formatting here for both the fields
move data to model.
Endloop.
Bind new model to UI
除了代码缩小或使用grunt之外,还有其他方法可以提高性能。
感谢您的帮助。
谢谢, 拉胡
答案 0 :(得分:3)
在优化性能时,用其他解决方案替换格式化程序绝对不是重点,更不用说在手动操作其中的数据时,您将失去ODataModel带来的许多便利。
格式化程序效果
无论如何使用格式化程序当然不如在加载后将数据预先格式化一次。每次重新渲染控件时都会执行格式化程序。因此,您可能不希望在频繁执行的格式化程序中进行大量计算或过度循环。但是考虑到使用格式化程序的正常使用情况,您绝对不应该担心或者会明显影响最终用户体验。继续享受格式化程序的便利(并看看酷Expression Binding)。
一般性能注意事项
为了提高性能,首先要确定真正的瓶颈是非常重要的。在许多情况下,这只是后端,通常会有更多的努力以更少的努力获胜。始终牢记这一点。只要主后端调用运行3s,UI代码优化就太荒谬了。
改善UI性能的方法可能是:
sap.ui.layout
是一个独立的独立库(未注册会导致大量额外请求)ODataModel
,请确保将useBatch
设置为true
(默认为v2.ODataModel
)如果您对网络效果感兴趣,我可以推荐Steve Souders本书。
我对SAPUI5性能改进的更多想法完全开放!任何人吗?
BR 克里斯
答案 1 :(得分:0)
最佳做法是这样做。格式化程序允许您接收输入和返回输出。格式化程序函数将在运行时调用,并将为列表中显示的每一行调用。为每个行调用它的原因是因为您不能承认列表中的所有行的输入都是相同的。
绑定的概念是循环数据模型并相应地更新UI。使用绑定要好得多,因为很多原因如:可维护性,性能,将数据层与表示层分离,核心优化等等。