5

HTMLインターフェース要素を設計する際、特定のイベントに応じてDOMを表示/非表示にするのはかなり一般的なシナリオです。私の質問は単純ですが、これに遭遇するたびに、常に疑問に思います。HTMLに要素をハードコーディングして、表示属性を切り替える(.show / .hideなど)か、動的に追加/削除する方が「良い」のでしょうか。 JS経由で必要に応じて?どちらも実装は簡単ですが、どのように比較し、一方を他方よりも使用することの利点/欠点があるかどうか疑問に思わずにはいられません。

同じ要素が複数の場所で逐語的に使用されている場合など、DOMを動的に作成するのは理にかなっているように見えますが、理論的にはDOMを移動できるという点で、理論的にハードコーディングする方が保守しやすい場合があります。必要に応じて変更すると、jQueryのセレクターが同じである限り、期待どおりに機能します。一般的に、デザイナーの観点から言えば、ハードコーディングが進むべき道のように思えますが、私はここで見落としているかもしれない考えやおそらく物事を楽しみにしています。

編集:「ハードコードされた」とは、JSを介してまったく挿入されない要素を意味しました。つまり、JSではなく元のhtmlマークアップの親ドキュメント内ですでに位置が指定されている要素です。

4

2 に答える 2

3

最終的に、それは実際にあなたが何を扱っているか、そしてあなたのアプリケーションが何をするかに依存します、しかし:

  • 静的マークアップは、サーバーの作業量が増えることを意味します(ただし、ページが最初に動的に生成される場合のみ、静的ページの場合、影響は無視できます)。

  • 動的マークアップは、クライアントにとってより多くの作業を意味します。これは、ターゲットオーディエンスによっては、必ずしも悪いことではありません。

ただし、技術的には、Graceful Degradationは、静的マークアップが進むべき道であることを示唆しています。理想的には、スクリプトを無効にしてもページを使用できるようにする必要があります(動的マークアップは、動作中の静的コアの上のオプションのレイヤーです)。

一方、プログレッシブエンハンスメントはそこから構築され、基本的には、すでにベアボーンコアで作業しているため、クライアント側のすべてのシリンダーで起動し、静的マークアップを動的に強化して、最新のブラウザのテクノロジー。

たとえば、jQueryUIjQueryMobileは、プログレッシブエンハンスメントを中心に設計されています。これらの戦略は、動的に作成された要素を通じて一般的に公開される、より豊富なクライアント側の動作で既存のマークアップを拡張することです。

したがって、タイトルの両方のオプションを一緒に実装することができ、間違いなく一緒に実装する必要があります。一般的なケースでは、可能であれば、アプリケーションがスクリプトレスプラットフォームで動作するために必要なマークアップをレンダリングし、クライアント側からそのマークアップを拡張することは良い考えのように見えます。

于 2012-07-04T19:30:28.180 に答える
2

大きなアプリで作業するときはパフォーマンスを考慮する必要があります。小さなアプリをコーディングするときにパフォーマンスの問題があまりない場合は、簡単で管理しやすいと感じることを実行します。非常に大きなDOMは、モバイルブラウザを殺す可能性があります。多くのDOM変更は、パフォーマンスに影響を与える可能性があります。大規模なアプリケーションでは、DOMを軽量に保ち、DOMの変更を減らすことをお勧めします。つまり、一言で言えば、パフォーマンスが注意深く監視されていない場合は、慣例よりも便利です。ただし、パフォーマンスとグッドプラクティスを常に監視することをお勧めします。

于 2012-07-04T18:45:11.040 に答える