SAPUI5:使用格式化程序会影响性能吗?

时间:2016-08-10 04:32:26

标签: performance odata sapui5 formatter

我正在使用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之外,还有其他方法可以提高性能。

感谢您的帮助。

谢谢, 拉胡

2 个答案:

答案 0 :(得分:3)

在优化性能时,用其他解决方案替换格式化程序绝对不是重点,更不用说在手动操作其中的数据时,您将失去ODataModel带来的许多便利。

格式化程序效果

无论如何使用格式化程序当然不如在加载后将数据预先格式化一次。每次重新渲染控件时都会执行格式化程序。因此,您可能不希望在频繁执行的格式化程序中进行大量计算或过度循环。但是考虑到使用格式化程序的正常使用情况,您绝对不应该担心或者会明显影响最终用户体验。继续享受格式化程序的便利(并看看酷Expression Binding)。

一般性能注意事项

为了提高性能,首先要确定真正的瓶颈是非常重要的。在许多情况下,这只是后端,通常会有更多的努力以更少的努力获胜。始终牢记这一点。只要主后端调用运行3s,UI代码优化就太荒谬了。

改善UI性能的方法可能是:

  • CDN
  • 投放SAPUI5
  • 使用Component-preload,可以使用grunt-openui5gulp-ui5-preload生成(我认为它还不会缩小XML,所以你可以在创建Component-preload之前再做一次)
  • 尝试减少您正在使用的SAPUI5库的数量
  • 了解您未使用的SAPUI5库,并因此删除这些库(不要忘记组件元数据中的依赖项部分resp。manifest.json)
  • 请注意sap.ui.layout是一个独立的独立库(未注册会导致大量额外请求)
  • 如果您使用ODataModel,请确保将useBatch设置为true(默认为v2.ODataModel
  • 智能设计您的OData服务(如果可以影响它)
  • 智能地使用$ expands:有时,在实际不使用它的父绑定上预加载$ expand数据是有意义的,例如:如果你以后很可能需要这些数据
  • 考虑将您的应用程序捆绑为本机应用程序并从改进的缓存中受益(Kapsel)
  • 检查Performance: Speed Up Your AppPerformance Issues
  • 通过缩小/组合自定义css或其他资源(如果有的话)来挤出更多字节并保存一些请求

如果您对网络效果感兴趣,我可以推荐Steve Souders本书。

我对SAPUI5性能改进的更多想法完全开放!任何人吗?

BR 克里斯

答案 1 :(得分:0)

最佳做法是这样做。格式化程序允许您接收输入和返回输出。格式化程序函数将在运行时调用,并将为列表中显示的每一行调用。为每个行调用它的原因是因为您不能承认列表中的所有行的输入都是相同的。

绑定的概念是循环数据模型并相应地更新UI。使用绑定要好得多,因为很多原因如:可维护性,性能,将数据层与表示层分离,核心优化等等。