質問: 質問/フラッシュカードを保存するためのJS配列または隠しdivs? 私は質問/フラッシュカードを表示するウェブサイトを作っています。まず、私はサーバーからフラッシュカードのセットを読み込みます(もともと私はすべてのフラッシュカードを別々に読み込むことを考えていましたが、これはMySQLクエリが多すぎます)、ユーザーはそれらを1つずつ見ることができます。例えば、30または300のフラッシュカードが存在する可能性がある。私は別のdivにそれらをロードし、CSSの表示を使用して私はスタックから最初のものを表示する一方、他のフラッシュカードは隠されています。その後、フラッシュカードを最後まで移動するか、jQueryでスタックから削除することができます。私は、代わりにjavascript配列にflashcardsを格納し、次に最初のflashcardを含む配列の最初の要素を印刷する方が良いでしょうか?あなたはどの練習をより良く/より速く見つけるでしょうか?それともどちらも同じように良いですか?
回答: 最終的には、予測が困難なさまざまな変数が存在するため、さまざまなアプローチをベンチマークしなければなりません。状況に応じて、それは問題の価値がないかもしれません。いくつかの基本的な考慮事項があります: * あなたがサポートしなければならないかもしれないフラッシュカードの数に上限がない場合は、AJAX読み込み - 1度に1つのアプローチを検討してください。バックエンドでのMySQLクエリが多すぎるという問題は、MySQLのチューニングやバックエンドでのクエリ結果のキャッシュで解決するものかもしれません。 * 特定のデバイスまたはOSまたはブラウザをターゲットにしている場合は、そのデバイスまたはOSまたはブラウザでパフォーマンスをテストします。大規模なJavaScript配列や多くのDOM操作では、携帯電話がうまく動作しない場合や、AJAX以外のソリューションでは遅いネットワークで読み込むには時間がかかりすぎる場合や、イメージなどが含まれていて文書サイズの制限に遭遇する可能性がある場合、例えば。私はこれらを作っている。実際にテストする必要があります。 * フラッシュカードの枚数の上限が既知で、合理的に小さい場合は、あなたが検討しているロードアットワンスアットワンスのテクニックがもっと魅力的かもしれません。私は一度10の質問で愚かなクイズのアプリケーションをし、クイズのサイズが小さかったので、それのためにAJAXを気にしませんでした。 (私はそれを書いて、AJAX-yのアプローチを変更することができれば簡単に落とすことができましたが、決してそれはしませんでした)。 * パフォーマンスの差が小さくて、自分にとってうまくいくものを実行すればよいということは重要ではないという実際の可能性を考慮してください。これは、サイトが最大100万人の同時ユーザーに拡大する必要がある場合には当てはまりません。しかし、それが15人の何人かの何人かのクラスのためであれば、ベンチマーキングのために多くの時間を費やしたくないかもしれません。 (これは、特定の質問に対する実際の回答に最も近いと思います)。