2012-01-18 1 views
1

jqueryのスクロールを使用して、単一のhtmlページを決して通過しないナビゲーション方法を使用するウェブサイトを作成しています。別の「ウェブページから離れることなくURLを変更する方法」

私はいくつかのウェブサイトがURLを変更することができ、これらの変更がプッシュ状態、AJAXスクリプト、または履歴API(これらの変更をすべて参照する投稿/回答(How does GitHub change the URL without reloading a page?およびAttaching hashtag to URL with javascriptなど)あまりにも精通していないです)。

現在、どの方法が自分のウェブサイトに最適で、私が好きないくつかの例を見ています。

私の質問は、以下のウェブサイトがURLを変更するパスに/#/を使用している理由です。私が尋ねる唯一の理由は、jquery重いウェブサイトでこれがますます頻繁に見られるためです。

http://na.square-enix.com/ffxiii-2/
http://www.airwalk.com

誰でも簡単にこれらの人は、これを行うために使用しているものにいくつかの光を当てることができれば、はるかに私はおそらく私自身のスクリプトを作成することができいただければ幸いです。

答えて

1

私の質問を説明する素敵なページを持っている使用/#/変更URLのパスで

我々は選択肢に無知の可能性を割り引く場合は、以下のウェブサイトを行う理由:彼らはthe horrible drawbacksを受け入れようとしているので、Internet Explorer(これはthe history APIをサポートしていません)で動作させます。

GithubはヒストリAPIが利用可能であればそれを使用し、そうでない場合はサーバに戻って、JavaScriptなしで壊れるようなリンクを生成するという賢明なアプローチを取っています。

0

私はそれを自分自身を試してみましたが、あなたが言ったように(古いために - 互換性のない - ブラウザ)「#パスに」オプションを持っていることになっていますHistory.js

について多くのレビュー/意見を読んでいましたし、 facebookのようなURLの直接的な変更。さらに、戻るボタンを押すと、以前のAJAX読み込みページに問題はありません。

私はそのような機能(URLを変更したAJAXタブ)を実装しましたが、動的にロードするページに他のjavascriptがある場合は、AJAXが読み込まれたページを使用することはお勧めできません。 AJAXでコンテンツを読み込むと、コンテンツ内のJavaScriptは実行されません。

私はHistoryJSに投票するか、独自のモジュールを作成します。

0

アンカー "#"は、サイト内の複数のブックマーク可能/ブラウザのナビゲート可能な場所を区別する必要があるため、アンカー "#"を使用しています。 /mySamePage.html#page1、/mySamePage.html#page2というジャンルのブラウザ履歴イベントを追加することで、ユーザーが現在のhtmlページにAjaxが何らかのコンテンツを読み込んでいるときに、あなたが(よく、明らかに)ユーザはその特定のコンテンツをブックマークすることができ、ブラウザ上で前後に押すことによって、異なるAjaxロードされたコンテンツを区別することができる。

これは、トリックとして悪くはない、唯一の問題はSEOの最適化です。Googleはこのhttp://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html

関連する問題