私は自分のウェブサイトページをシームレスに読み込もうとしています。下のリンクのページをクリックすると、私が何を話しているのかが分かります。シームレスページをAJAXで変更する
あなたはそれが情報および/#をロードしますリンクをクリックしたとき!/ URLに追加されます。私のページが同じようにロードされるように、この機能をどのように追加するのですか?どこでもチュートリアルはありますか?
私は自分のウェブサイトページをシームレスに読み込もうとしています。下のリンクのページをクリックすると、私が何を話しているのかが分かります。シームレスページをAJAXで変更する
あなたはそれが情報および/#をロードしますリンクをクリックしたとき!/ URLに追加されます。私のページが同じようにロードされるように、この機能をどのように追加するのですか?どこでもチュートリアルはありますか?
これは、hashchange
というイベントです。ページをリロードせずに#!
の後に値を変更してから、AJAXを使用して必要な情報を読み込むことができます。 HTML5をサポートする新しいブラウザを使用している場合は、History.pushState
を使用して同様の方法でURLバーを変更できます。
基本的に、リンクにイベントを追加し、URLを変更して(location.hash
またはpushState
を使用)、AJAX経由でデータを読み込むことができます。
Hereは、pushState
の場合、location.hash
、and here'sのいずれかのまともな例です。
良いクロスブラウザソリューションについては、History.jsをお勧めします。
History.jsを使用する場合は、ページにスクリプトを追加した後、JavaScriptを少し追加する必要があります。
$('a.hash').click(function(e){ // For all links with the class "hash"
e.preventDefault(); // Don't follow link
History.pushState(null, '', this.href); // Change the current URL (notice the capital "H" in "History")
$('#content').slideUp('slow', function(){ // Animate it sliding up
var $this = $(this);
$this.load(this.href, function(){ // Use AJAX to load the page (or do whatever)
$this.slideUp('slow'); // Slide back down
});
});
history.jsはそれを見てから最良の選択肢のようです。私はhistory.jsの作者からこのhttps://gist.github.com/854622に出くわしましたが、実装方法についてちょっと混乱しました。私はスクリプトを含めましたが、これ以上必要なことがないかどうかはわかりません。 –
@JoeBobby:スクリプトを追加した後、ページにJavaScriptを追加して 'History.js'を使用する必要があります。私は私の答えに例を追加します。 –
私はこれを私の頭の中に置き、.hashをナビゲーションリンクに追加しましたが、動作しているかどうかはわかりません。どのように伝えることができますか? –
[pjax](http://pjax.heroku.com/)または[History.js](https://github.com/balupton/History.js/)をご覧ください。 –