Rails 3和jQuery - 两者如何协同工作来创建一个Web应用程序?

AnA*_*ice 2 jquery ruby-on-rails ruby-on-rails-3

我需要帮助理解Rails中的端到端流程.

我可以使用以下示例的帮助..让我们采取Facebook.

当您在Facebook.com上,然后单击MESSAGES时,URL将更改为(facebook.com/?sk=messages),然后使用AJAX将使用JavaScript注入的HTML/JS内容下载到内容面板中.没有浏览器刷新,这就是我所追求的.

我的具体问题是:

  1. 对于通过AJAX下载的内容,该内容是否来自rails部分?...(app> views> messages> _messagestable.html.erb
  2. JavaScript驻留在哪里知道获取messagescontent然后将内容注入内容面板?(那是application.js?
  3. 一旦将消息内容(_messagestable.html.erb)注入到内容面板中,它将需要针对该内容的新JavaScript功能......应该在哪里生活?

tre*_*ace 5

据推测,Rails就像其他任何主要框架一样工作.通常,您希望AJAX和GET请求能够很好地协同工作.所以想象你有这个网址:

http://www.example.com/messages

到这里将加载您网站的消息部分,而无需进行AJAX调用.但是,如果你去:

http://www.example.com/#/messages

您将登陆www.example.com,您可以使用AJAX将"/ messages"部分发送到您的服务器,在那里它可以将其解释为对该控制器的请求以获取该消息视图(或者您已经获得它建立).这是一种我见过的称为hijax的技术,因为您可以使用正确链接的实际锚元素来加密页面

http://www.example.com/messages

要么

http://www.example.com/maps

但是在您的javascript中,您可以取消链接的操作并将浏览器重定向到:

http://www.example.com/#/messages

要么

http://www.example.com/#maps

既然你有其他的javascript函数正在侦听hash标记中的更改,那么它就像你直接转到那个链接一样...就是将"/ maps"发送到服务器,让服务器解释它,并回放您要填充页面的所需内容HTML.通过这种方式,搜索引擎可以抓取您的网站,您可以获得适合有和没有javascript的用户体验.

现在,在页面加载后加载其他Javascript功能,我相信,您可以简单地使用Javascript插入新标记,并将源添加到新脚本所在的位置.您可以使用jQuery的.getScript()方法轻松完成此操作:

http://api.jquery.com/jQuery.getScript/

至于所有这个脚本所在的位置......我猜这取决于你或Rails.解析URL哈希的能力是你必须要把它们放在一起的东西.为此,您可以选择许多jQuery库:

检测URL中的后退按钮/哈希值更改

希望这可以帮助..