全局与本地 for commonjs 内存钛
Global vs local for commonjs memory titanium
我在 Titanium Studio 中为每个页面重复了一个代码,所以我应该在每个单独的页面中还是在全局范围内声明它?
像这样的东西。
//app.js
test = require('test');
//page1.js
test= new test();
view.add(test.view);
exports.view = view;
//page2.js
test = new test();
view.add(test.view);
exports.view = view;
还是我应该这样做
//app.js
//page1.js
var test = require('test');
view.add(test.view);
exports.view = view;
//page2.js
var test = require('test');
view.add(test.view);
exports.view = view;
我的测试.js是这样的
//test.js
function textField(){
this.view = Ti.UI.createView();
this.view.add(this.textField = Ti.UI.createTextField());
}
module.exports = textField;
始终避免填充全局范围。当您以通用JS模式编写时,请确保您是模块化的,并且始终保护全局范围。
我总是使用 App.js 来引用控制器文件,例如。
var controller = require('/controller');
controller.loadApp();
这使得填充全局范围变得非常困难。
按照您首次需要模块或文件时提供的第二个示例进行操作,方法是使用
require('foo')
它被放置在应用程序内存中,如果另一个页面或选项卡然后调用相同的需要访问它,它不会重新加载它,它只是更改了指向该文件的指针,可以访问它的所有功能,例如您的 textField 函数。
相关文章:
- 如何捆绑commonjs模块,除非指定需要
- 重复应用 d3 转换导致的内存泄漏
- 如何显示在给定极限内存在的所有素数
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- 基于订阅的nosql内存数据库
- 显示:阻止/无html元素,css.not从内存中释放
- jQuery Draggable:内存泄漏
- 元素过多的HTML内存使用情况
- 如何使用Javascript在FireFox中将html从内存动态加载到iframe中
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- Javascript图像数组预加载速度和从内存中删除
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- VBA加载网页并提取内存中的数据
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- new Datamap() 在调用之间保持内存的共享状态
- 具有并发sse连接的node.js内存泄漏
- HTML5内存游戏-JavaScript功能
- 全局与本地 for commonjs 内存钛