2014-03-14 54 views
0

我想列出每個發送到服務器的請求,現在我將每個請求存儲在一個帶有id的對象中。在對象中存儲一系列值的有效方法?

//code sample that explain my context 
function handleReq(){ 
this.list={}; 

} 

var reqhandler = new handleReq; 

//adding each request like this 
reqhandler.list[req.id] = req; 

問題是我的申請發出很多請求(即超過成千上萬)。如果用戶更多地使用應用程序,則按比例增加對象大小。

現在我想知道,這是存儲請求的最佳方式嗎?

如果它不好,請提出一些替代方案?

+0

你有什麼需要記錄的請求_for_?調試? –

回答

0

如果您不需要通過ID訪問請求,爲什麼不使用,而不是一個數組:

function handleReq(){ 
    this.list=[]; 
} 

var reqhandler = new handleReq; 

reqhandler.list.push(req); 

顯然,如果你需要保持請求超出當前頁面,你需要的壽命堅持請求在本地存儲在瀏覽器或一些服務器端存儲庫,但從你的問題的聲音我不認爲這是事實。

0

怎麼做這樣的事情:

var requestLogger = (function(){ 

    var logArray = []; 
    var logObj = {}; 
    logObj.add = function(obj){ 
    logArray.push(obj); 
    }; 

    logObj.get = function(){ 
    return logArray; 
    }; 
    logObj.getById = function(id){ 
    //return log elemnt by id from array. 
    }; 
    return logObj; 

}()); 



requestLogger.add("new request id"); 
console.log(requestLogger.get()); 

http://jsbin.com/gucuzohu/1/

+0

感謝您的回答。我實際上在問,它是否跨越數百萬的請求會發生什麼? –

+0

每當你使用requestLoggger的add函數時,數組會增加它的大小,你將能夠添加一個乾淨的方法來清除數組中的數據,也許使用timeout 你需要看看這個: https://developers.google.com/chrome-developer-tools/docs/memory-analysis-101 – Moran

相關問題