2011-06-10 127 views
1

我有以下問題: 我有一個Web應用程序和功能是:用戶需要審查分配給他的文件。用戶查看文檔後,他會將該文檔標記爲「已審覈」。分配給用戶的文檔可能在1000s。將會有一個選項「未經審查」的文件。所以,當用戶點擊它時,他會得到所有未經審查的文件清單(可能是1000s)。例如,他得到Doc1,Doc2,Doc3,Doc4,Doc5,Doc6,Doc7,Doc8,Doc9,Doc10。他從Doc1開始。他可能會/可能不會審查Doc1,然後轉到Doc2以查看目的。現在,他應該能夠使用「下一個」/ '上一個'選項瀏覽列表中的文檔。現在的問題是 - 如果我在審查Doc5的中間,我想去上一個文檔(文檔4被審查),它需要被保存在緩存中爲審查會議,以便它可以回到以前的審查文件。如果我將它保留在緩存中,直到現在訪問的所有文檔都可以在1000s內運行,那麼如果有大量用戶在共同的文檔集上工作,那麼就有可能發生內存異常錯誤。我如何着手解決這個問題。數據被保存在內存中緩存或DB

感謝,

UPDATE:

我想我應該爲它應該如何工作更加明確 - 只要用戶是在「未審覈」會議上,他得到所有的未審覈文件(例如說Doc1-10中的10個文件)。現在,他應該能夠瀏覽這10個文檔(下一個/前一個),而不管這個「未審覈會話」中標記爲「已審覈」的文檔。假設在導航通」這些文件,他標記文檔2爲‘審查’,他出來的非審查會議,並再次下一次的選擇‘未審覈’他應該得到9個文檔,除了文檔2.但是,如果他是仍然沒有經過審查,他將Doc 3標記爲已審覈,然後轉向Doc 4,即使它已經「審覈」,他也應該能夠回到Doc 3。難道我們維持對這些設定在「未審覈」對話中選擇,這樣我們就可以在非審查會議

回答

3

保持滑動高速緩存窗口中通」導航它的文檔的唯一的會話。看看下面的詳細信息

..., 34, 35, [36, 37, <38>, 39, 40], 41, 42, ... 

(brackets indicate the cache window, the currently viewed item is #38) 

和作爲一個人再一次按下,窗口被更新

..., 34, 35, 36, [37, 38, <39>, 40, (41)], 42, ... 

(download #41 in the background while the person browses #39, the current item) 

這將對如果人滯後不是減慢小範圍的變化,和隱藏的下載時間的影響一點點在一個特定的文件。它還可以讓您平衡窗口大小和可用內存。

+0

基本上,我使用的數據庫查詢所有「未審覈」文件。所以,如果這個人是瀏覽#39,他希望以前的文件,#38,它需要獲取文檔#36在後臺,但這已經是「審查」,因此不會得到那個(因爲我有查詢只得到'未審查'的文件)。即使在本次審覈會議中審覈/未審覈,我也希望獲得文檔#36。 – Zen 2011-06-10 21:10:33

+0

然後重寫您的查詢,或者修改上面的緩存以不包含審閱的文檔;取決於你的程序應該如何工作。 – 2011-06-10 21:18:51