私はFacebookがチャットのサイドバーをどのように実装しているのか理解しようとしています。私がページを変えてもそこにとどまるようです。たとえば、サイドバー内でテキストを選択してから別のFacebookページに移動すると、そのテキストが選択されたままになります。別のフレームであるかのようですが、コードを見るとそうではありません。Facebookはどのようにチャットサイドバーを実装しましたか?
7
A
答えて
3
「fb_content」と呼ばれるコンテナDOM要素があります。そのコンテンツは、AJAXまたはまったく技術的にはXMLHttpRequestで置き換えられます。 (たとえば、アプリを入力すると、ページ全体が更新されますが)アドレスバーを更新するには、JavaScript History APIを使用します。
4
すべてのリクエストは、AJAXコールによって行われます。必要に応じて「コンテンツ」コンテナのみが置き換えられます。
あなたは実際に別のページに移動しません。ちょうど "content" divが更新されます。
0
Zenoとlericsonの言うことに加えて(fb_contentはajax経由で更新されます)、アドレスバーは履歴を維持しながら更新されます(前/後を押すと)。
関連する問題
- 1. 「万セント」はどのように実装されましたか?
- 2. Youtubeはこのリストコントロールをどのように実装しましたか?
- 3. socket.ioは認証をどのように実装しますか
- 4. EvernoteはAndroidでリッチテキストエディタをどのように実装しましたか?
- 5. numpyは多次元放送をどのように実装しましたか?
- 6. wordpress 3.7はどのように自動更新を実装しましたか?
- 7. scribdはどのように 'フルスクリーン'モードを実装しましたか?
- 8. Chromeのジオロケーションプロンプトダイアログは、どのように実装しますか?
- 9. LAMPプロジェクトの "ワンステップビルド"はどのように実装しますか?
- 10. Facebookのティッカーデザインはどのように実装されていますか?
- 11. 汎用ファクトリインターフェイスはどのように実装しますか?
- 12. React Native:DatePickerAndroidはどのように実装しますか?
- 13. UIAccessibilityプロトコルはどのように実装しますか?
- 14. `prepareForReuse`はどのように実装しますか?
- 15. パンチオートプレフィクサープリプロセッサーはどのように実装しますか?
- 16. Redux Thunkはどのように実装していますか
- 17. UIScrollViewのdataSourceオブジェクトをどのように実装しますか?
- 18. どのようにangle2アプリケーションのdocusignを実装しますか?
- 19. k-meansの実装をどのようにテストしますか?
- 20. 匿名認証をどのように実装しますか?
- 21. CRTPでデストラクタをどのように実装しますか?
- 22. 評価実装をどのように構築しますか?
- 23. strtolをconst-correctnessでどのように実装しますか?
- 24. VBScriptでどのようにselect文を実装しますか?
- 25. ワークフローシステムをどのように実装しますか?
- 26. これでバイナリツリーをどのように実装しますか?
- 27. フェッチAPIをどのように実装しますか?
- 28. AWS Lambdaでバワーをどのように実装しますか?
- 29. どのようにIEnumeratorインターフェイスを実装しますか?
- 30. ECDFをPythonでどのように実装しますか?