2011-07-27 49 views
0

我正在製作一個包含大量不同元素的頁面,並且當您將鼠標懸停在每個元素上時,我想顯示一個工具提示。有成千上萬的元素,因此每個工具提示的信息都需要使用ajax進行記錄。什麼是更快?從數據庫檢索數據或從文本文件檢索它?

我在想,如果它能夠更好地節省mysql數據庫的所有提示信息,並與一個Ajax請求檢索所有necesery信息,或者是它更好地在需要的時候每個提示保存到一個單獨的文件和Ajax的每個文件。

回答

0

表現明智,文本文件可能會更快;因爲您不會承擔使服務器端頁面碰到數據庫並將數據返回給客戶端的開銷。文本文件可以直接讀取,而且開銷很小。

+0

東西是啊,我能看到,這將使有更好的表現,如果文件的samll量就開了,但如果說上每頁我必須得到50個工具提示,這將訪問50個文本文件,但是如果我使用數據庫,它將是一個請求,它可以檢索50個工具提示信息,它會更快嗎? – Thaiscorpion

+0

我的錯。我不認爲批量處理工具提示是一種選擇;我認爲有一個特定的原因,他們不得不在鼠標懸停的每件物品上或其他東西。對我來說是錯誤的假設。 –

1

可以選擇是將數據存儲在數據庫中還是放在平面文本文件中,可以選擇是一次檢索還是一次檢索所有值。

話雖這麼說,你可以考慮以下兩件事情:

  • 檢索一次全部,如果有大量的數據,可能會減慢頁面
  • 的響應檢索他們在一個一時間可能每個項目放緩,導致許多,許多調用服務器

什麼可能是一個很好的解決方案是組提示成很可能是在同一時間(訪問串即組頁面的每個部分)。然後,您可以檢索具有所需工具提示的組,並抓取用戶可能在此後不久需要的所有組件。

另一種方法是通過javascript文件(而不是通過ajax)檢索工具提示,然後在加載頁面後異步加載文件。該頁面將顯示,並且在用戶第一次查看時,可以在後臺加載工具提示。如果我沒有記錯的話,這也會讓瀏覽器緩存數據(js文件),以便在用戶回到同一頁面時不需要重新載入信息(例如緩存,而無需做任何工作得到它)。

至於數據庫與文本文件的決定,文本文件通常會更快。但是,我會根據更改工具提示的方式/時間進行選擇。如果您隨時需要在更改工具提示時推送新版本的應用程序,則該平面文件是一個合理的(且簡單的)選擇。如果您希望能夠動態更改工具提示(這似乎不太可能),那麼數據庫可能是更好的選擇。無論哪種方式,您選擇何時加載工具提示的選擇以及它們中的多少可能會掩蓋數據庫與平面文件之間的差異。

+0

這裏的問題在於,工具提示不可能被磨成可能的文件,因爲每個用戶在頁面上都有不同的元素,因此將它們分組是不可能的。關於最後一個選項,是不是使用javascript來加載一個文件asynchornously只是ajax? – Thaiscorpion

+0

即使每個用戶在頁面上具有不同的元素,仍然可以按區域對工具提示進行分組。 – RHSeeger

0

數據庫將比單獨的文件更快,因爲它會緩存結果。要麼使用數據庫,要麼使用單個文件。與緩存