0

私のページの 1 つにタブ付きコンテンツがある ASP.NET Web サイト (コード ビハインドとしての c#) があります。私は2つの異なる方法でそれを行いましたが、今はどちらが進むべきかを決定しています. 1 つの方法として、私は JavaScript でそれを行いました。クリックされたものに応じてdivを交換するだけで、これはうまく機能しています(いくつかの小さなちらつきの問題を除いて...)。もう 1 つの方法として、Ajax コントロール ツールキットとタブ コントロールを使用しました。私は Ajax の利点を調べていましたが、Ajax でタブ付きインターフェースを使用することのこれらの欠点も見ました...

  • 検索エンジンは、Ajax にアクセスできないため、最初のタブにないデータを認識しません。
  • タブはブックマークできません。そのため、顧客は必要な情報を保存できません。
  • Ajax にはアクセスできないため、他のタブのコンテンツは、スクリーン リーダーを使用しているユーザーや、JavaScript を適切にサポートしていない古いブラウザーでさえも表示されません。
  • タブの 1 つに多くの情報が含まれている場合、低速の接続では読み込みに時間がかかる可能性があります。また、Ajax は何も起こっていないことを示していないため、ページが壊れているように見えます。

これらはすべて正しいですか?とにかくサイトのユーザーだけがコンテンツを見ることができるので、検索エンジンで情報が見つからないことについてはあまり心配していません.

したがって、主な質問は、各実装方法の長所と短所は何ですか? Ajax は確かにきれいに見えますが、パフォーマンスはどのように積み重なっていくのでしょうか?

4

3 に答える 3

2

検索エンジンは、Ajax にアクセスできないため、最初のタブにないデータを認識しません。

これは言い方が悪い。データはサーバー上に存在するため、ajax リクエストが完了して DOM が読み込まれるまで、クライアントはアクセスできません。最初のタブのデータはどのくらい重要ですか? それが重要な場合は、ページレイアウトに配置してください。

タブはブックマークできません。そのため、顧客は必要な情報を保存できません。

ブックマークが顧客情報の保存と何の関係があるのか​​ わかりません。2つの異なるもののようです。しかし...

gmail のように自動保存を実装できます。setTimeout を使用して ajax ポストをサーバーに送り返し、下書きまたはブックマーク設定を保存します。ハッシュタグを使用して、単一ページのアプリケーションでページ構造をナビゲートします。

Ajax にはアクセスできないため、他のタブのコンテンツは、スクリーン リーダーを使用しているユーザーや、JavaScript を適切にサポートしていない古いブラウザーでさえも表示されません。

繰り返しますが、人々にあなたのサイトをスクリーン スクレイピングしてもらいたいですか? jQuery は、$.ajax() を使用して古いブラウザーをうまくサポートします。私は jQuery Mobile で IE6 と IE7 をサポートしており、$.ajax() を多用しました。

タブの 1 つに多くの情報が含まれている場合、低速の接続では読み込みに時間がかかる可能性があります。また、Ajax は何も起こっていないことを示していないため、ページが壊れているように見えます。

これにはローディングバーを使用できます...

$.ajaxStart(function() { /* show spinner gif */ } );
于 2012-07-31T15:20:23.170 に答える
2

上記のポイントへの回答:

検索エンジンは、Ajax にアクセスできないため、最初のタブにないデータを認識しません。

検索エンジンは、ページで見つけたものをインデックスに登録します。データがそこにない場合、それらはロードされません。ただし、AJAX の結果を取得するために使用される URL が通常の<a>タグを介して別のページとしてリンクされている場合は、これをインデックスに登録することができます。

タブはブックマークできません。そのため、顧客は必要な情報を保存できません。

これは、非 AJAX ソリューションを使用している場合でも当てはまります。タブをブックマークするには、特定の「状態」でページを効果的にブックマークする必要があります。これを実現するには、ハッシュ フラグメントを使用するのが良い方法です。

Ajax にはアクセスできないため、他のタブのコンテンツは、スクリーン リーダーを使用しているユーザーや、JavaScript を適切にサポートしていない古いブラウザーでさえも表示されません。

スクリプトを介して読み込まれたコンテンツと同様に、ユーザーがスクリプトを無効にしている場合、コンテンツは取得されません。ブラウザのサポートに関しては、jQuery やその他の多くのライブラリがブラウザの違いを抽象化して、サポートしたいものを合理的にサポートします。

タブの 1 つに多くの情報が含まれている場合、低速の接続では読み込みに時間がかかる可能性があります。また、Ajax は何も起こっていないことを示していないため、ページが壊れているように見えます。

正しくない。ロードするデータが多いほど、HTTP 要求を完了するのに時間がかかります。しかし、「AJAX は何かが起こっていることを示していない」というのは正しくありません。意味がありません。AJAX はトランスポート メカニズムです。「何かが起こっている」ことをユーザーに示す責任はあなた次第であり、回転するプレースホルダーなどで簡単に達成できます。

基本的に、AJAX は初期の UI 状態に必要なデータのみを要求することで、最初のページ読み込み時間を最小限に抑えます。後続のリクエストは、他の HTTP リクエスト (ページの読み込みを含む) と同様に時間がかかりますが、私の意見では、ユーザー エクスペリエンスの向上ははるかに優れています。

于 2012-07-31T15:19:12.513 に答える
0

タブをクリックしてもページがちらつかないような ajax フィールを探している場合は、jQuery.ajax を使用します。あなたはより多くのコントロールを持ち、そこにはたくさんのサポートがあります.

検索エンジンの問題を処理するために、各タブを表す URL を含むサイト マップを提供できます。

がんばれ、トム

http://api.jquery.com/jQuery.ajax/

于 2012-07-31T15:42:22.887 に答える