2009-07-17 65 views
0

我在一個應用程序中工作,在這個應用程序中,我需要在整個應用程序會話中維護最後一次訪問的UI狀態(如列過濾器,排序,選定記錄,調整大小的小部件,列等),這隻會在會話中終止結束(並通過手動註銷或關閉瀏覽器將會在會話結束時發佈到數據庫)。我有一些事情要問客戶端性能因素...?

  1. 我有一個父頁面刷新從來沒有(這是一個框架頁面,我不對此有一個控制)。我的頁面位於框架上,並且此框架將在運行時加載不同的頁面。所以我決定創建我的父頁面運行時使用這樣

    parent.parent.parent.eval一個列表對象(「VAR SAM;」) 並在整個會議期間填補我的狀態對象(在JSON形式) 。

是否使用這種方法進行了推薦?可以在客戶端維護這些數據量嗎?我沒有太多的JavaScript的主題取消分配capablitites ..它會傷害系統無論如何??

  1. 而我維護JSON數據數組在我的頁面中包含一些數據,並且它只會在頁面生存期內被維護,它將在頁面卸載時終止。這可以根據頁面中的數據增長

我剛開始擔心,瀏覽器能否承受這個負擔?有人可以建議我的JavaScript性能最好的方法。

回答

0

我明白你在做什麼,但是你並沒有給我們足夠的信息來給出一個很好的答案。你問

可以在客戶端保持這個數量的 ?

但是,您並沒有真正告訴我們您正在使用的數據量爲多少

我個人認爲你會沒事的。存儲中等到大量的數據會影響內存,這些問題現在不是一個大問題 - 當你開始真正執行CPU密集型的東西時,JavaScript的真正性能問題就會出現,比如大量的DOM交互,大量的迭代以及遞歸。

哦,我可能會鼓勵你這樣

top.varname = null; 

建立在框架的範圍內的變量,而不是

parent.parent.parent.eval('var varname;'); 
+0

感謝彼得·您申請.. 讓我澄清量的數據我一直在使用..就像它不會超過陣列50個列表項目,每個列表將保存多達10個關聯對.. 和使用頻率在頁面加載和卸載。在頁面卸載時捕獲上次訪問的UI狀態,並將狀態重新設置爲頁面加載時的控件。這些是捕獲的數據處理的位置......在客戶端保留這些數據是非常好的,因爲它會是在整個會議期間保持...... – RameshVel 2009-07-18 04:09:09