OfficeExtension.TrackedObjects class
包含在请求上下文中的跟踪对象的集合。 有关详细信息 ,请参阅 context.trackedObjects 。
注解
使用方
示例
// This sample creates many one-cell ranges, then removes each
// cell proxy object from memory before the batch operation completes.
await Excel.run(async (context) => {
const largeRange = context.workbook.getSelectedRange();
largeRange.load(["rowCount", "columnCount"]);
await context.sync();
const trackedObjects: OfficeExtension.TrackedObjects = context.trackedObjects;
for (let i = 0; i < largeRange.rowCount; i++) {
for (let j = 0; j < largeRange.columnCount; j++) {
const cell = largeRange.getCell(i, j);
cell.values = [[i *j]];
// Release the cell proxy object from memory now that we're
// done with it. The memory is freed on the next context.sync() call.
trackedObjects.remove(cell);
}
}
await context.sync();
});
方法
| add(object) | 跟踪新对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。 |
| add(objects) | 跟踪一组对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。 |
| remove(object) | 如果给定的代理对象已在此集合中,则此方法释放与 对象关联的内存。 需要在内存释放生效之前调用 |
| remove(objects) | 如果给定的代理对象已在此集合中,则此方法将释放与对象关联的内存。 需要在内存释放生效之前调用 |
方法详细信息
add(object)
跟踪新对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。
add(object: ClientObject): void;
参数
- object
- OfficeExtension.ClientObject
返回
void
示例
// This sample shows how to track a Word proxy object so it can be used
// across multiple context.sync() calls.
await Word.run(async (context) => {
// Create a paragraph proxy object.
const paragraph = context.document.body.insertParagraph(
"This paragraph is tracked across sync calls.",
Word.InsertLocation.end
);
// Track the paragraph so it remains valid across sync calls.
context.trackedObjects.add(paragraph);
await context.sync();
// The tracked paragraph can still be used after the preceding sync.
paragraph.font.bold = true;
await context.sync();
// Remember to release the object from memory once you're done with it.
context.trackedObjects.remove(paragraph);
await context.sync();
});
add(objects)
跟踪一组对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。
add(objects: ClientObject[]): void;
参数
- objects
返回
void
remove(object)
如果给定的代理对象已在此集合中,则此方法释放与 对象关联的内存。 需要在内存释放生效之前调用 context.sync() 。 如果给定的代理对象不在此集合中,则调用 后 context.sync() 不会存储代理对象。 这加快了为一次性操作创建许多对象的实例的速度。
remove(object: ClientObject): void;
参数
- object
- OfficeExtension.ClientObject
返回
void
示例
// This sample inserts many paragraphs into a Word document, removing each
// paragraph proxy object from memory after it's used.
await Word.run(async (context) => {
const body = context.document.body;
for (let i = 0; i < 500; i++) {
const paragraph = body.insertParagraph(`Paragraph ${i}`, Word.InsertLocation.end);
// Release the paragraph proxy object from memory now that we're
// done with it. The memory is freed on the next context.sync() call.
context.trackedObjects.remove(paragraph);
}
await context.sync();
});
remove(objects)
如果给定的代理对象已在此集合中,则此方法将释放与对象关联的内存。 需要在内存释放生效之前调用 context.sync() 。 如果给定的代理对象不在此集合中,则调用 后 context.sync() 将不会存储代理对象。 这加快了为一次性操作创建许多对象的实例的速度。
remove(objects: ClientObject[]): void;
参数
- objects
返回
void