Engines
你可以把Engines理解为JavaScript运行时的管理器。有时候你需要在当前脚本环境中开启一个新的运行时来执行另外的JavaScript脚本(完全脱离当前JavaScript环境的上下文,而且不阻塞当前JavaScript代码运行),这个时候就需要使用Engines。
当然,在一些时候,如果你想彻底关闭JavaScript运行时,也是通过Engines来关闭的。
executeScript(filename)
filename {string} 要执行的JS文件地址 必须为相对项目根目录的地址,非当前文件的相对地址
返回 {Thread}
//heart.js主要启动一个定时任务,每间隔几秒钟往服务器发送当前App的状态
Engines.executeScript("script/task/heart.js");//心跳脚本,监测App的在线状态
//特别说明,即使当前脚本终止运行了,heart.js依旧会继续运行
//如果需要关闭heart.js,可以使用 Engines.closeAll方法来操作;
executeScriptStr(name, script)
name {string} 脚本名称,自定义;实际中的任务名称,用于排查故障的时候使用
script {string} 要执行的脚本内容
返回 {Thread}
在新的环境中执行JavaScript,新的环境会开启新的堆栈空间,不会和当前的脚本有任何关联,是完全独立的。
//heart.js主要启动一个定时器setInterval,每间隔几秒钟往服务器发送当前App的状态
Engines.executeScript("My first DeekeScript", "console.log('My first DeekeScript');");
closeAll()
建议在脚本运行完成后进行关闭,否则可能会出现内存泄漏
关闭JavaScript运行时和运行时所在的线程
Engines.closeAll();//关闭所有脚本运行时,当前脚本所在运行时也会被结束