2013-03-24 9 views
5

Facebookのこの機能は、チャットボックスを右下に開き、別のページ、たとえば友人のプロフィール、またはFacebookのチャットボックスはリロードされません。バックグラウンドページの上にある別のレイヤーのように、チャットボックスはリロードされません。Facebook chatboxはページ間でリロードしません

当然、私はFacebookが本質的にページをリロードしていないと思っていました.とそれに関連する機能を使用してコンテンツを非同期的にロードし、URLを動的に変更しています(Firebugは、友人の名前があなたの友人のプロフィールページに表示されたら、実際はGETリクエストが解雇されています)。だから、まったくページロードがないので、チャットボックスはそのままアイドル状態に置くことができます。

しかし、pushstateはバージョン10より前のIEではサポートされていませんが、IE9でも正常に動作します。だから、誰が私にそれをやっているのか教えてもらえますか?彼らはhistory APIをまったく使用していますか、それとも何か違うのですか?

答えて

7

これは簡単な答えで素晴らしい質問です。私はFacebookのについてはよく分からないが、これはあなたを助ける必要があります - History.js

History.jsは優雅にすべてのブラウザでHTML5歴史/ステートAPIを(pushState、replaceState、onPopState)をサポートしています。データ、タイトル、replaceStateを引き続きサポートします。 jQuery、MooTools、Prototypeをサポートしています。 HTML5ブラウザの場合、これはハッシュを使わなくてもURLを直接変更できることを意味します。 HTML4ブラウザの場合、古いonhashchange機能を使用するように戻ります。

+0

ええ、私はこれが来ていることを知っています。しかし問題は、HTML4ブラウザでは、onHashChange関数に依存しているということです。しかし、IE89では、ハッシュが変更されるだけでなく、パスも変更されるという複数のケースがあることがはっきりと分かっています。この場合も、IE9はページをリロードせず、チャットボックスはそのままです。 URLを動的に変更するだけです.. – SexyBeast

+0

大丈夫です、私はそれを得ました。断片化した新しいパスとハッシュ記号の後に他のものが追加されます。つまり、それらはすべてハッシュの一部です。右? – SexyBeast

+0

そうですね、私はそれを試していませんでしたが、このように思えます。最も良い例は、モバイル版のFacebook(https://m.facebook.com/)で、そこにハッシュシステムが含まれています。 –

関連する問題