0
我需要知道我的想法是否是一個好主意。每次從文件讀取或加載到數組Node.js
林彙集了一個web服務器,流html文件js文件css文件,類型的靜態web服務器。
由於它一直是靜態的,我在想,我只需要真正讀取文件,然後在開始時將它加載到數組中,以便在客戶端請求時減少文件讀取。
像這樣的代碼已經
var tttt = []
var server = http.createServer();
server.on("request",function(request, response){
var etret = '/home/bob/node-show/big-file.js';
var setHeader = function(file){
return {
'Content-Type': MIME.mime(file),
'Transfer-Encoding':'chunked',
'Connection': 'keep-alive'
};
}
if (!tttt[path.basename(etret)]) {
tttt[path.basename(etret)] = []
var test = fs.createReadStream(etret)
test.setEncoding('ascii')
test.on('data', function(data){
console.log(data)
tttt[path.basename(etret)].push(data)
});
test.on('close', function(data){
console.log('sadsad')
response.writeHead(200, setHeader(etret))
console.log(tttt[path.basename(etret)].length)
for (var i = 0; i < tttt[path.basename(etret)].length; i++) {
response.write(tttt[path.basename(etret)][i])
};
var erw = 0
for (var f = 0; f < tttt[path.basename(etret)].length; f++) {
erw = (erw + tttt[path.basename(etret)][f].length)
}
console.log(erw)
response.end()
});
}else{
response.writeHead(200, setHeader(etret))
console.log(tttt[path.basename(etret)].length)
for (var i = 0; i < tttt[path.basename(etret)].length; i++) {
response.write(tttt[path.basename(etret)][i])
};
var erw = 0
for (var f = 0; f < tttt[path.basename(etret)].length; f++) {
erw = (erw + tttt[path.basename(etret)][f].length)
}
console.log(erw)
response.end()
console.dir(server.connections)
}
//return _fontEnd(request, response);
}).listen(8000, function(){
console.log('HTTP server up');
});
大file.js大約500KB的空間可能是個好主意,也許50個文件加載到內存中保存從硬盤驅動器讀取?