改变网页的位置,同时保持一些项目的静态


Changing a webpage location, while keeping some items static?

不知道用什么方法来描述我的意思,最好的方法就是在我解释的时候看看Facebook。

Facebook底部的栏将始终保持不变,所有的聊天窗口打开,当你改变一个页面时没有轻弹,然而,网页和地址栏都将改变为你要求的新页面,对我来说,似乎网页实际上根本没有改变,相反,地址栏的URL改变以及页面内容。

我正在为一个乐队网站的音乐播放器工作,我想在网站上的所有页面保持静态,而无需重新加载并重新开始每个新页面

底部栏的位置是position: fixed,这使得它相对于视口,而不是文档。

其他页面加载XHR,或者AJAX

不断变化的URL可能是片段标识符,除非你有一个尖端的浏览器,它似乎正在使用HTML5历史API (GitHub目前也是)。

我们基础设施团队的工程师Zach Rait实现了History API,以便通过AJAX选择性地加载页面内容,同时保留可读的url。以前,当前应用程序状态存储在URL片段中,这导致不合适的URL,如"profile.php?id=1586010043#!/pages/Haskell/401573824771"。现在,由于HTML5允许我们将当前显示的URL与应用程序的实际状态解耦,我们能够更快地显示页面,节省带宽,并避免污染用户的位置栏。

听起来您想要一个模板,并使用JQuery或类似的语言来动态加载站点的一部分的新内容?通过这种方式,JQuery将使用ajax来加载部分主窗口的新内容,而无需重新加载大部分主页面。

你可以使用css在底部设置一个样式栏

#somelink{
position:absolute;
bottom:0px;
}
HTML

<a href="" id="somelink">click me</a>
<div id="news">Replace me with new content</div>
JQuery

$("#somelink").click(function(){
  $("#news").get("album.html",function(data){$(this).html(data);}); 
});