0

我只是对脸书很好奇。这些是我的问题。

  1. 其页面中的 facebook 标头如何在其内容和正文执行时不会重新加载?
  2. 除了 php、javascript 和 ajax 之外,还有其他编程或脚本语言用于制作 Facebook 页面吗?

谢谢您的回答。

4

1 回答 1

0

我不确定 Facebook 是如何实现这一点的,但我的猜测是,它使用某种 pushState 和 AJAX 仅更新网站的部分内容(HTML)。

PushState用于浏览历史记录,并使网页的工作和行为与重新加载整个页面时完全一样。它更改浏览器地址栏中的地址,使用户能够像普通页面加载一样使用浏览器中的后退和前进按钮。用户将无法区分。

AJAX用于在后台获取新内容,然后更新 DOM/HTML,而无需重新加载页面,就像普通的 AJAX 调用一样。您可以在不加载页眉和页脚的情况下使用导航时更新的页面特定内容的 div。

例子:

单击导航链接只会在后台使用 AJAX 调用从#content div 重新加载内容。

 <html>
      <head></head>
      <body>
           <header>
                <nav>
                      <a href="/page1">Page 1</a>
                      <a href="/page2">Page 2</a>
                </nav>
           </header>
           <div id="content">
              page content
           </div>
           <footer>
              footer content
           </footer>
       </body>
<html>

例如,这可以通过 jQuery 插件PJAX轻松完成。有关实施和下载的更多详细信息,请参阅GitHub 页面

注意:这在 IE 9 中不起作用(但它应该在 IE 10 中起作用,但我自己没有尝试过也没有确认过),但大多数工具,包括 PJAX,都可以轻松优雅地降级,因此不受支持的浏览器会得到一个完整的页面重新加载。

于 2012-12-13T09:01:49.123 回答