主题
销毁对象
由于 iframe
的跨域安全限制,没办法直接调用 iframe
内部的函数和变量。
js-sdk
提供的高级 API 对象,只是对 iframe
内部的映射,它是通过 postMessage
进行通信的,所以部分对象需要手动销毁。
const app = jssdk.ExcelApplication()
// 例如表格获取 WorkSheet 对象
const sheet = jssdk.Sheets.Item('sheet1')
// 此时得到的 sheet 对象只是一个映射对象
// 它拥有 iframe 内部对象的所有属性和方法
// 该对象的所有属性和方法都会映射到 iframe 内部
sheet.Activate() // 切换 sheet
// ...do something
// 不需要该对象时,可以手动销毁
// 此时会通知 iframe 内部销毁对应对象
sheet.Destroy()
批量释放对象
由于单个对象销毁比较麻烦,所以 js-sdk
还提供了接口可以按照区间销毁,进而达到批量释放:
const stack = app.Stack()
// ...do something
stack.End() // 在 stack 区间的对象都会被销毁