0

私のテンプレートには、選択ボックスと、に基づいて動的に変化する要素があります。たとえば、米国を選択すると、州は米国の州を含む選択ボックスになります。他の国を選択すると、都道府県はテキスト フィールドのみになります。私はJavascriptでそれをしなければならないことを知っていますが、この場合のベストプラクティスを知りたいです. なにか提案を?

4

1 に答える 1

1

この質問は、stackoverflow でほぼ毎日発生します。

関連する複数の選択フィールド タイプのベスト プラクティスは、サブ選択を追加するための専用の送信ボタンを使用して、データベースから最初の選択ボックスのみをロードすることです。

フォームを初めてレンダリングするときに、可能なすべてのサブセレクトをフェッチしないでください。たとえば、国 -> 州 -> 市区町村のようなものを表示すると、重いデータベース クエリが簡単に発生する可能性があります。

フォームが「州の表示」ボタンを使用して送信された場合は、関連するサブ選択を「都市の表示」ボタンとともにフォームに追加するか、他のサブ選択が読み込まれない場合は、最後の「保存」ボタンを使用します。

このようにして、JavaScript を使用しないユーザーは、最初は不要な副選択クエリを使用することなく、二重選択を使用できます。JS で 2 番目の選択を非表示にするだけではベスト プラクティスではありません。

JavaScript によるプログレッシブ エンハンスメントはAJAXになります。つまり、国の州のJSONリストをロードし、「州を表示」ボタンを削除し、ハンドルバーや口ひげなどのJS テンプレートエンジンを使用してデータをレンダリングし、「保存」ボタンを追加します。

このようにして、クライアント ブラウザに繰り返しデータを送信しすぎる必要がなくなります (オプション、オプション、オプション ... )。

最後のステップは、ロード時間を短縮するためにクライアントとサーバー側をキャッシュすることです。おそらく、何らかのバックグラウンド プリロード、つまりクライアントの優先言語の上位 5 つの選択肢を含むことさえあります。

于 2013-07-10T11:29:38.890 に答える