【发布时间】:2017-07-06 13:40:59
【问题描述】:
我正在编写一个修改 Outlook 文件夹的实用程序脚本。为此,我通过 COM 接口(Windows Script Host/JScript)使用Redemption v5.14。
我有这两个函数可以为我获取 RDOFolder 的所有子文件夹的一些信息数组:
// enumerate all subfolders of an RDOFolder
function getFolderList(rdoFolder) {
if (!rdoFolder) return;
return foldersToArray(rdoFolder.Folders).map(getFolderDetails);
}
// pull out some details about a single RDOFolder
function getFolderDetails(rdoFolder) {
if (!rdoFolder) return;
return {
name: rdoFolder.Name,
entryID: rdoFolder.EntryID,
defaultMessageClass: rdoFolder.DefaultMessageClass,
folderCount: rdoFolder.Folders.Count
};
}
foldersToArray() 只是将Folders 集合枚举到一个 JS 数组中。
对于较大的子文件夹列表,这需要大量时间 - 对于 40 个子文件夹,大约需要 12 秒。
当我将最后一个函数简化为检索较少信息的函数时:
// pull out some details about a single RDOFolder
function getFolderDetails(rdoFolder) {
if (!rdoFolder) return;
return {
folderCount: rdoFolder.Folders.Count
};
}
那么性能很好(40 个子文件夹需要几十毫秒)。
但不知何故,即使访问 RDOFolder 的 Name 属性(或任何其他属性)也会增加异常开销。
为什么会发生这种情况,有没有办法改善它?
【问题讨论】:
标签: com jscript outlook-redemption