Ruby on rails 如何创建像Facebook这样的静态(非刷新)菜单栏?

Ruby on rails 如何创建像Facebook这样的静态(非刷新)菜单栏?,ruby-on-rails,facebook,ruby-on-rails-3,user-interface,Ruby On Rails,Facebook,Ruby On Rails 3,User Interface,我想知道如何(在rails中)创建一个菜单(或标题)栏,它不会像facebook那样加载各种页面请求。你能简要介绍一下Facebook在这方面使用了什么样的技术,以及我如何在rails3中复制这种机制吗?这种技术被称为ajax,你必须使所有链接按照ajax请求工作,并且只更新页面所需的部分 您可以将布局一分为二 <div id='header'> your code here... </div> <div id='content'> yield <

我想知道如何(在rails中)创建一个菜单(或标题)栏,它不会像facebook那样加载各种页面请求。你能简要介绍一下Facebook在这方面使用了什么样的技术,以及我如何在rails3中复制这种机制吗?

这种技术被称为ajax,你必须使所有链接按照ajax请求工作,并且只更新页面所需的部分

您可以将布局一分为二

<div id='header'>
  your code here...
</div>
<div id='content'>
  yield
</div>

你的代码在这里。。。
产量
现在您可以在链接上使用:remote=>true选项来标记rails,因此请求将是ajax请求

然后,您必须提供一个.js视图,以使用视图的代码更改id为“content”的div的内容

您的.js应该执行以下操作。。。(假设您正在使用jQuery)

$('#content').html('your_file.html.erb))=>);
这是最基本的想法,您必须使用ajax


我猜facebook也使用HTML5的pushstate来更改位置地址,这样您就可以使用浏览器的后退/前进按钮将html从服务器加载到当前页面,而无需加载整个页面。它是ajax,具有真正的永久链接、页面标题和一个完全降级的后退按钮。

现在我面临一种情况,需要按特定页面加载特定于页面的JS和CSS文件,我的意思是根据正在访问的控制器。但我无法让PJAX加载JS或CSS文件。这个问题有解决办法吗?
$('#content').html('<%= escape_javascript(render(:file => your_file.html.erb)) =>');