Javascript(Titanium)中单个和多个执行上下文之间的区别

时间:2012-07-26 06:28:59

标签: javascript titanium appcelerator titanium-mobile appcelerator-mobile

我对Javascript中的单个和多个执行上下文感到困惑。 我提到了http://developer.appcelerator.com/blog/2010/08/execution-contexts.html  虽然我对JS上下文有了很好的概述。 但我不知道在Titanium中构建应用程序时何时使用单个或多个上下文是好的。

1 个答案:

答案 0 :(得分:3)

来自Best Practices Documentation(强调我的):

  

使用Titanium Mobile,可以创建一个窗口,其url属性设置为Javascript文件的路径(相对于当前文件)。调用窗口的open方法时,将评估关联的JavaScript文件,从而创建辅助“执行上下文”,从而创建新范围。除极少数情况外,应避免使用此多活动JavaScript环境。

     

这些多个执行上下文会导致问题,因为没有范围   任何其他人的可见性,意味着在上下文之间共享数据   没有笨拙地使用应用程序级自定义就不可能   事件(使用Titanium.App addEventListener和fireEvent)。他们能   也导致循环引用和可能的内存泄漏。有   生命周期问题,在什么时候变得不清楚代码   给定的JavaScript文件已经过评估。

     

虽然这种方法有一些合理的用例,例如   一个“应用程序内的应用程序”,每个新窗口都需要“干净的石板”   没有依赖于全局上下文,通常是带有URL的窗口   不应该使用。