自定义移动应用时的性能注意事项

Dynamics 365 Field Service 移动应用的基础是模型驱动应用。 因此,性能应用的一般指南和最佳做法以及模型驱动应用的性能注意事项也适用。

从生产代码中删除 Console.log

将数据记录到控制台可能会增加内存压力,因为控制台会阻止清理项目。 此外,在生产期间最好不将数据记录到控制台,因为这样可能会意外打印最终用户可以查看的敏感数据。 这包括 console.logconsole.warnconsole.error

如果不使用 QuickNotes,请删除 QuickNotes WebResource

QuickNotes 控件捆绑包在 Field Service 中存在两次:一次作为 PCF 控件,一次作为 Web 资源。 如果无法使用 QuickNotes 控件(或任何其他控件),请从窗体属性的 Web 资源中删除该控件的 bundle.js(如果存在)。 这将阻止在不需要时下载控件代码。

可以转到可预订资源预订实体的预订和工作订单窗体,打开窗体属性,然后从事件选项卡中删除 cc_MscrmControls.FieldControls.QuickNotesControl/bundle.js 项,来删除此捆绑包。

减少 PCF 控件中的 Office UI 导入

如果将 @fluentui/react 库用于交互式 UI 组件,则导入的模块数可以比打算根据导入定义方式导入的模块数多。 通过明确导入组件的路径,您可以显著减小组件的大小(从而减少需要下载的数据)。

例如:

import { Button } from '@fluentui/react'
should be written as: 
import { Button } from '@fluentui/react/lib/Button';

使用已连接的窗体可最大程度地减少跨不同实体的导航

Field Service 让您可以在窗体上使用不同表的数据。 更少的导航操作意味着更短的加载时间。 与改用快速查找导航的方案相比,窗体组件在导航到时具有较低的最大内存值。

有关详细信息,请参阅编辑预订和工作订单窗体

从应用中删除未使用的控件

如果应用用户没有使用移动应用中的某些控件,请考虑将其删除以减少内存使用量。 窗体中不必要的控件会增加应用内存消耗,从而导致性能下降。 例如,默认情况下,时间线控件包含在多个表和窗体中。 如果您的方案不利用时间线,请考虑移除它以减少内存消耗。