1

私が理解している限り、要素の HTML をまったくレンダリングしないか、display:none を追加すると、まったく同じ動作になるようです。どちらも要素を非表示にし、HTML と対話しません。

チェックボックスを無効にして非表示にしようとしています。したがって、HTML の総量はわずかです。パフォーマンスが問題になるとは想像できません。

サーバーコードの作成に関する限り、コーディング作業はほぼ同じです。

これらの 2 つのオプションを考えると、一方が他方よりも優れた方法でしょうか? それとも、どちらを使用しても問題ありませんか?

4

6 に答える 6

2

つまり、そのチェックボックスが必要ですか?そうでない場合.hide()は、カーペットの下にあるものをブラッシングするだけです. CSS だけでなく、HTML も雑然としています。ただし、そこにある必要がある場合は確かですが、チェックボックスなしで実行できる場合は、HTML に含まれていません。

シンプルで読みやすいものにしてください。

于 2015-02-06T22:55:01.940 に答える
1

それを非表示にする唯一の良い点は、ボタンがクリックされたり、ページでそれがアクティブになったりした結果、後で元に戻したい場合です。そうしないと、コードが不必要に長くなるだけです。

于 2015-02-06T23:17:00.010 に答える
0

このような小さなシナリオの場合、結果は実質的に同じになります。しかし、CSS でコントロールを非表示にすることは、習慣にしたいことではありません。

コードとその出力の両方を実用的な点まで効率的にすることは常に良い考えです。したがって、すべてをきちんと管理できるという条件を少し追加して、出力に一部のコントロールを含めないようにすることが簡単な場合は、そうしてみてください。もちろん、これは入力を受け取るコードの部分には拡張されません。これは、任意のデータをいつでも処理できるようにしておく必要があるためです (少なくともパブリック アプリの場合)。

一方、出力を生成するコードを変更するのが難しい場合もあります。特に、何をすべきかを決定する機能を与えると、以下の悪い慣行の形で損害を与える可能性があります。おそらく、グローバル変数を追加するか、条件を転送できるようにいくつかの関数を変更/オーバーライドします。その場合、短い CSS を追加して、ローカライズされた短い方法でソリューションを実現することは不合理ではありません。

場合によっては、決定がハードな外的要因に基づいていることが判明することにも注意してください。たとえば、スパムボットを検出する非常に基本的なメカニズムは、HTML では他のフィールドと同じように表示されますが、CSS で非表示にされるフィールドを含めることです。この状況では、スパムボットが目に見えないフィールドを埋めて、自らを明け渡す可能性があります。

于 2015-02-06T23:12:51.513 に答える
0

私は、目に見えず、何の役にも立たないマークアップを HTML に追加するのは好きではありません。質問でそれを行うことの単一の利点を提供しなかったため、簡単な答えは次のとおりです。チェックボックスをページの一部にする必要がない場合は、マークアップに含めないでください。

チェックボックスを非表示にしても、ダウンロードやサーバーでの作業に顕著な時間が追加されることはないと思います。したがって、それは実際には考慮されていないことに同意します。ただし、多くのページには余分なコンテンツ (コメント、viewstate など) があり、それらをすべて足し合わせることができます。したがって、必要のないコンテンツやユーザーに表示されることのないコンテンツを先に追加するという態度を持つ人は、全体的に著しく遅いページを作成することを期待しています.

ここで、不要なマークアップを含める理由についての情報を提供していません。クライアント スクリプトについては何も言われませんでしたが、非表示の要素をページに残す可能性がある 1 つのケースは、クライアント スクリプトを作成してそれらを削除する場合です。この場合、私はhide()それをマークアップに残すことができます。その理由の 1 つは、必要に応じて簡単に再表示できることです。

それが私の答えですが、誰にも見られないページにマークアップを含めるためにどのような考慮事項があったかを説明していただければ、より良い答えが得られると思います。確かに、それはあなたが開示していない何らかの利益を提供するに違いありません。

于 2015-02-06T23:13:06.277 に答える
0

ここでの混乱点は次のとおりです。単に何かをレンダリングしないのではなく、display: none を使用するのはなぜですか?

答えは次のとおりです。クライアント側で行っているからです。

"display: none" は、サーバーへの追加のトリップなしで要素を非表示または再表示する必要があるクライアント側の操作を行う場合のより良い方法です。その場合、それはまだページの論理構造の一部であり、削除して (そして Javascript でメモリに格納して) 挿入するよりも、アクセスして操作する方が簡単です

ただし、サーバー側の重いフレームワークを使用していて、常にそれをレンダリングしない自由がある場合、はい、display:none はかなり無意味です。

  • クライアントが作業を行う必要がある場合は「display:none」を使用し、DOM との関係を管理します。
  • レンダリング/非レンダリングの決定が変わるたびに、サーバーが毎回新しい (そしてかなり不変の) HTML を生成している場合は、レンダリングしないでください。
于 2015-02-06T23:21:48.017 に答える