0

私のウェブサイトは次のように設定されています。ページが読み込まれると、テンプレート内の jQuery アニメーションが再生され、完了すると、ページのコンテンツを取得するための Ajax 呼び出しがさらに行われます。ここで、 http://com-address/#!page のようなハッシュバンを展開したいと考えています。また、ページの読み込み時にもアニメーションを保持する必要があります。しかし、このセットアップの問題は次のとおりだと思います。Web クローラーがページにアクセスすると、アニメーションが完了するのを待たずに Ajax 呼び出しを行います。読み込まれたコンテンツを含むページの状態が必要です (私の場合、アニメーションが完了した後に取得されます)。

上記のシナリオを考えると、どちらの方法が優れているか:

  1. フロー全体を変更し、ページ コンテンツをプリエンプティブに読み込み、アニメーションが再生されるまで非表示にします。

  2. URL に hash-bang または _escaped_fragment が見つかった場合のみ:

    を。手順 1 に従います。

    b. アニメーションなしのコンテンツでページをロードします。

  3. Webクローラーに関する私の仮定は正しくなく、現在の流れをそのままにしておきます。

ヘッズアップのアドバイスはありますか?

編集

@kdzwinel、テキストブラウザに関するヒントをありがとう!

考え直して、オプション 2(a) を使用します。これは、クローラーがフラグメント化された URL を使用してリソースにアクセスしたときに、ページ上の完全な結果コンテンツを取得する必要があるためです。また、ユーザーがフラグメント化された URL に直接移動した場合、アニメーションのユーザー エクスペリエンスも損なわれません (ページの読み込みとアニメーションの開始の間に動的コンテンツ フラグメントのコンテンツを削除することにより)。

また、他のすべてのシナリオでは、古いフロー (アニメーション化してから Ajax 経由で取得) を継続します。これは、ユーザーが既に Web サイトにアクセスしており、フラグメント化された URL を持つアンカーを使用してスムーズに/シームレスにナビゲートしようとしているため、ページを更新したくないためです。 (クリックイベントをバインドしてアニメーションを開始します)。

4

1 に答える 1

1

ウェブ クローラーは JavaScript を実行しません (ウェブマスター ガイドライン-

JavaScript、Cookie、セッション ID、フレーム、DHTML、Flash などの高度な機能により、テキスト ブラウザでサイト全体を表示できない場合は、検索エンジン スパイダーがサイトをクロールできない可能性があります。

)、コンテンツのインデックスを作成しない場合は、オプション #1 を使用してください。ページが開いたときにコンテンツをロードし、ブラウザーが JavaScript をサポートしている場合は、コンテンツを非表示にしてアニメーションを表示します。

于 2012-01-18T11:31:48.660 に答える