web-dev-qa-db-ja.com

ajax呼び出しからのデータを保存する最良の方法

私はAJAXリクエストと動的にHTMLコンテンツを生成してサーバーからデータを取得するWebアプリケーションを書いています。ロードするデータがあり、そこからHTMLを生成して、自分のWebページにappendします。今、私は2つの解決策を考えていました:

1)AJAXを呼び出し、応答からHTMLを生成し、必要に応じて_display: none_をそれに設定し、後で必要になったときに、代わりに_display: block;_を設定し、hide()表示する必要のないその他のコンテンツ(常に動的に生成されます)。

2)保存AJAX応答をvariablesに保存し、前に生成されたHTMLを削除し、後で必要になったときにvariableから再生成します。

うまく説明できたかどうかはわかりませんが、クライアント/サーバーのパフォーマンスの点でどちらがベストプラクティスかを知りたいのですが。

2
steo

HTMLを非表示のdivにレンダリングする最初のアプローチは合理的です。特に、サービスによって返された情報が一度レンダリングされると変更される可能性が低く、それ以上変数を操作する必要がない場合は特にそうです。これにより、コンテンツを複数回レンダリングすることが回避されます。あなたの説明から、これはあなたが満たす必要がある基本的な必要性であるように聞こえます。 display:noneを使用する場合、レンダリングされた領域内で行うサイズまたは位置の計算は正しく機能しないことに注意してください。したがって、要素のサイズを動的に変更または配置している場合、要素が適切にレンダリングされない可能性があります。単純なHTMLの場合、これはおそらく問題にはなりません。

受信後に結果を操作する必要がある場合、またはリクエストを複数回行っており、応答が変更された可能性があるために毎回HTMLを新たにレンダリングする必要がある場合、より良いアプローチは、応答をオブジェクトに解析してレンダリングすることです。オブジェクトを入力として使用する関数を使用して、またはテンプレートシステムを使用してHTMLに変換します nderscore.jsライブラリに含まれるものと同様 HTMLをレンダリングします。

3
DemetriKots