2011-11-24 25 views
1

我正在製作一個顯示問題/抽認卡的網站。首先,我從服務器加載一組閃卡(原本我正在考慮分別加載每個閃存卡,但這需要太多的MySQL查詢),然後用戶可以逐個查看它們。例如可能有30個甚至300個抽認卡。我加載他們在一個單獨的股利和使用CSS顯示我只顯示堆棧中的第一個,而其他閃卡是隱藏的。然後可以將flashcard移動到最後,或者使用jQuery從堆棧中移除。我想知道,將Flash卡存儲在JavaScript數組中是否會更好,然後例如打印包含第一張flashcard的數組的第一個元素?你會發現哪種做法更好/更快?或者他們都同樣好?JS數組或隱藏的div來存儲問題/抽認卡?

+0

300張卡片什麼也沒有。我懷疑你會看到任何性能提升。但是,使用AJAX並在需要時加載每張卡也可能是一個好主意。 – Blender

+0

您是否使用後端代碼創建div,然後使用jQuery處理它們? – dSquared

+0

http://quizlet.com? – Purag

回答

0

最終,你必須對不同的方法進行基準測試,以便確定,因爲有許多變量可能具有難以預測的效果。根據情況,這可能不值得麻煩。下面是一些基本思路:

  • 如果沒有上限,你可能要支持,可以考慮用AJAX裝載一-AT-A-時間去的辦法卡片的數量。在後臺進行太多MySQL查詢可能會導致MySQL調優或緩存後端查詢結果。

  • 如果您針對特定設備或操作系統或瀏覽器,然後測試該設備或操作系統或瀏覽器的性能。手機可能無法很好地處理大型JavaScript數組和大量DOM操作,或者非AJAX解決方案可能需要很長時間才能在慢速網絡上進行加載,或者如果存在圖像以及您可能遇到的文件大小限制,例如。不過,我正在做這些。你需要真正的測試。

  • 如果閃存卡的數量已知上限並且相當小,那麼您所考慮的全部一次加載技術可能會更具吸引力。我曾經用10個問題做了一個愚蠢的測驗應用程序,並沒有爲AJAX而煩惱,因爲測驗的大小非常小。 (我寫了它,所以如果需求發生變化,我可以很容易地進入AJAX-y方法,但他們從未這樣做過。)

  • 考慮一下真正的可能性,這並不重要 - 性能差異將會如此之小以至於你應該做一些適合你的工作。如果網站需要擴展到100萬個併發用戶,情況並非如此。但是,如果是針對15人或者某個類別的單個班級,那麼您可能不想花費大量時間進行基準測試。 (我想這是最接近你提出的具體問題的實際答案。)