2015-05-14 22 views
1

例如,我想在Meteor啓動時插入一些init json數據到db中。我有兩種方法。在服務器/私有/定義一個全局變量var有什麼區別?

1.在服務器/定義它init.js

server/data.js: 
data1 = [{ "data": "to insert"}]; 
server/init.js 
Meteor.startup(function() { insertToDb(data1); }); 

2.私人/ data.json定義它

private/data.json 
[{ "data": "to insert"}]; 
server/init.js 
Meteor.startup(function() { 
    var data2 = Assets.getText("data.json"); 
    insertToDb(data2); 
}); 

A.是否data1生活的所有時間?如果是這樣,如果數據很大,會浪費一些內存?

B.什麼是缺點和優點?

C.一般用途或場景private

回答

0

它與您是從文件加載數據還是靜態定義數據以及與您的數據變量作用域更多有關。如果你定義了全局的東西,那麼是的,它將被存儲在內存中,以保存整個過程的生命週期。如果你在一個函數中本地定義它,那麼一旦函數退出,所有的內存都被釋放。

舉例來說,你可以這樣做:

服務器/ init.js

Meteor.startup(function() { 
    var data1 = [{ "data": "to insert"}]; 
    insertToDb(data1); 
}); 

隨着中說,這裏是一個意見,如果你願意的話來閱讀: 從邏輯上講,任何大的塊的數據不應該被靜態定義。將它保存在一個單獨的文件中,以便更新。本地化文件就是一個例子。

相關問題