私はAJAX
リクエストと動的にHTML
コンテンツを生成してサーバーからデータを取得するWebアプリケーションを書いています。ロードするデータがあり、そこからHTMLを生成して、自分のWebページにappend
します。今、私は2つの解決策を考えていました:
1)AJAXを呼び出し、応答からHTMLを生成し、必要に応じて_display: none
_をそれに設定し、後で必要になったときに、代わりに_display: block;
_を設定し、hide()
表示する必要のないその他のコンテンツ(常に動的に生成されます)。
2)保存AJAX応答をvariables
に保存し、前に生成されたHTMLを削除し、後で必要になったときにvariable
から再生成します。
うまく説明できたかどうかはわかりませんが、クライアント/サーバーのパフォーマンスの点でどちらがベストプラクティスかを知りたいのですが。
HTMLを非表示のdivにレンダリングする最初のアプローチは合理的です。特に、サービスによって返された情報が一度レンダリングされると変更される可能性が低く、それ以上変数を操作する必要がない場合は特にそうです。これにより、コンテンツを複数回レンダリングすることが回避されます。あなたの説明から、これはあなたが満たす必要がある基本的な必要性であるように聞こえます。 display:noneを使用する場合、レンダリングされた領域内で行うサイズまたは位置の計算は正しく機能しないことに注意してください。したがって、要素のサイズを動的に変更または配置している場合、要素が適切にレンダリングされない可能性があります。単純なHTMLの場合、これはおそらく問題にはなりません。
受信後に結果を操作する必要がある場合、またはリクエストを複数回行っており、応答が変更された可能性があるために毎回HTMLを新たにレンダリングする必要がある場合、より良いアプローチは、応答をオブジェクトに解析してレンダリングすることです。オブジェクトを入力として使用する関数を使用して、またはテンプレートシステムを使用してHTMLに変換します nderscore.jsライブラリに含まれるものと同様 HTMLをレンダリングします。