为什么 Oracle 在设置多个值时建议使用 model.setValue() 方法而不是 setRecordValue()?
Why does Oracle recommend using model.setValue() method over setRecordValue() when setting multiple values?
我正在使用 Apex 18.2。根据 Apex 的 JSDoc,Oracle 建议在设置多个值时应使用 model.setValue() 方法而不是 setRecordValue() 方法。但不幸的是,它没有提到背后的原因。有谁知道它是什么?
我很佩服你的好奇心。它会让你成为一个伟大的开发者。 :)
要真正知道区别,我建议学习阅读源代码。虽然一开始很困难,但随着时间的推移会变得更容易,并成为一项无价的技能。
APEX 团队让这一切变得非常简单。打开您的开发者工具,然后 运行 处于调试模式的页面。这会将未缩小的 JavaScript 源文件加载到 DOM 而不是缩小版本。转到 Sources 选项卡并找到相关文件(一开始识别正确的文件需要一些时间,但也变得更容易)。您可以直接打开文件(更利于调试)或右键单击它并在另一个选项卡中打开它(更利于扫描)。
然后只需搜索您想要的函数的代码并阅读它...
如您所见,在代理到模型的 setValue
方法之前调用 setRecordValue
,调用 getRecord
。这只是一个代码路径,如果您要进行多次 setRecordValue
调用,则可以避免这种情况。这可能是一个微优化,但它们可以加起来。
我正在使用 Apex 18.2。根据 Apex 的 JSDoc,Oracle 建议在设置多个值时应使用 model.setValue() 方法而不是 setRecordValue() 方法。但不幸的是,它没有提到背后的原因。有谁知道它是什么?
我很佩服你的好奇心。它会让你成为一个伟大的开发者。 :)
要真正知道区别,我建议学习阅读源代码。虽然一开始很困难,但随着时间的推移会变得更容易,并成为一项无价的技能。
APEX 团队让这一切变得非常简单。打开您的开发者工具,然后 运行 处于调试模式的页面。这会将未缩小的 JavaScript 源文件加载到 DOM 而不是缩小版本。转到 Sources 选项卡并找到相关文件(一开始识别正确的文件需要一些时间,但也变得更容易)。您可以直接打开文件(更利于调试)或右键单击它并在另一个选项卡中打开它(更利于扫描)。
然后只需搜索您想要的函数的代码并阅读它...
如您所见,在代理到模型的 setValue
方法之前调用 setRecordValue
,调用 getRecord
。这只是一个代码路径,如果您要进行多次 setRecordValue
调用,则可以避免这种情况。这可能是一个微优化,但它们可以加起来。