2010-12-17 41 views
9

私はhttp://mysite.com/index.phpです。私たち=>http://mysite.com/about.us.php ページをリロードせずにアドレスバーでURLを変更する方法

  • 製品=>http://mysite.com/products.php
  • について

    とサブメニュー

    • ホーム=>http://mysite.com/index.php
    • しかし、私はhttp://mysite.com/index.phpは、すべてのリクエストを処理したい、とだけAjaxリクエストを使用してコンテンツを変更します。この方法では、サイトはコンテンツ部分のみを読み込み、ナビゲートする方がはるかに高速で簡単です。など、Googleが表示されます唯一のURLがhttp://mysite.com/index.phpであると私は私たちコンテンツについてhttp://mysite.com/about-usを関連付けしたい、製品コンテンツへhttp://mysite.com/productので

      問題ここでは、SEOで

      私が知っていますPHPを使って、URLを読み、Ajaxを書いているだけですが、そのようにすると、ページ全体が毎回読み込まれるようになります。 ページ全体を再読み込みせずにこれを行う方法はありますか? 私が必要と思うのは、サブメニューに通常のアンカーを置くことです(例:http://mysite.com/contact-us)。クリックすると、このページを開くのではなく、Ajaxリクエストを処理します。

      これが可能であれば、Googleはおそらくこれを黒い帽子と見なすでしょう、そうですか?

      私はあなたがhttp://www.imhackingyou.com/suckerで私を訪問するが、読むためにアドレスバーを変更couldletことを行うことができるようにするのでよろしく アレックスは

    +3

    あなたはAjaxが自動的に物事をより速くしないことを理解します、 右? –

    +1

    最新の流行語を使用しているために何かをすることは付加価値ではありませんか? – zzzzBov

    +0

    zzzzBov:?????あなたは大丈夫ですか? Ajaxは流行語の流行語ですか? –

    答えて

    12

    ページを変更することなく、アドレスバーにURLを変更することはできませんhttp://www.bankofamerica.com/login

    +0

    することはできますが、それはまあまあです。 –

    +0

    もしそれが間違っているなら、それは正しい答えになることができますか?その答えがあなたができないと説明していることをする方法を説明する素晴らしい答えがあります! – mondi

    6

    これはルーティングの問題であり、AJAXの問題ではありません。

    のようなURLを受け入れ

    あなたは別のツール( ASP.NET MVC )を使用していた場合、あなただけのルートを追加したい(と私はPHPでこれを行う方法があります有望だが)

    /home 
    /products 
    ... 
    

    と良いMVCやRESTfulなURLシステムの外で使用する場合これは、一般的に書き換えエンジンを用いて達成される

    /index.php?area=home 
    /index.php?area=products 
    

    、たとえば、それらをルーティングされます。私はIIS上でISAPI Rewriteを使用していますが、LAMPスタックで作業している場合、Apacheは同じ機能を提供するモジュールを提供していると思います。 (グーグル.htaccess

    WARNING:RANTは

    に追随し、それは価値がある何のために、

    1. はJavaScriptでアプリケーション全体を書き込もうとしないでください。そこにはサーバーがあります。Web開発者としての仕事の一部は、できるだけ多くの作業をサーバーに吸収することです。ブラウザのパフォーマンスと互換性の問題は、クライアント上のすべてを実行しようとすると気が狂ってしまいます。

    2. ポストバックを避けることは、多くの状況で理にかなっていますが、すべてのページに適用する必要があります。通常は、リンクがクリックされたときに新しいページを読み込むのが理にかなっています。これはユーザーが期待するものであり、より安定しています(必要なインフラストラクチャのほとんどがサーバー側であるため)、同じことを取得するAJAX要求よりも遅くはありません。

    ルール:

    1. バックボタンを破るないでください。注意深い計画がなければ、ほとんどのAJAXアプリケーションはこのルールを破ります。
    2. ルール#1を参照してください。それはrewrite engineで実現されなければならないが、あなたはAJAXを使用するための十分な理由を持っていると仮定して、あなたは、より良いまだhashbangをハッシュした後の部分を変更することで、JavaScriptでURLを変更、またはすることができますよう
    +7

    +1はルール#2のために戻るボタン – shevski

    +5

    +1を破っていない。 – Jonah

    +0

    Davidに感謝しますが、私は何を求めているのでしょうか。主にSEOの目的でhtaccess rewriteを使用しています。とにかく、私はポイント1に同意します、私はJS + Ajaxが非常に有用であると思っています。しかし、主にCMSでは、いいえ、ビジター側ではありません。 –

    0

    をチェックアウトする方法Shopifyはそれを行うのですか? 、彼らのウェブサイトに行く特長のリンクをクリックして、URLが表示されます言う:

    http://www.shopify.com/tour/sell-online

    が続いてサブリンクのいずれかをクリックして、表示されますその使用せずにURLの変更のアドレスハッシュですが、ページフリップはありません。

    私は、すべてがページの隠しdivに含まれているように見えるため、コンテンツを変更するためにajaxを使用しているとは思われませんが、クライアントサイドのトリックを使用してURLを変更することはできます。

    関連する問題