Ajax和Ruby on Rails框架的结合应用(1)(2)
清单 4. 呈现时间 def time render_text "The current time is #{Time.now.to_s}" end 现在,当单击该链接时,会得到图 2 中的视图: 图 2. 不涉及 Ajax 的视图 498)this.width=498
清单 4. 呈现时间
| def time render_text "The current time is #{Time.now.to_s}" end |
现在,当单击该链接时,会得到图 2 中的视图:
图 2. 不涉及 Ajax 的视图

很快就能看到这个 UI 的一个问题。这两个视图不从属于单独的页面。该应用程序表示一个单一概念:单击一个链接来显示时间。为反复更新时间,每次都需要单击该链接和 Back 按钮。将该链接和时间放到相同的页面中也许可以解决这个问题。但如果该页面变得非常大或非常复杂,重新显示整个页面会很浪费,也会很复杂。
添加 Ajax
Ajax 让您可以只更新 Web 页面的一个片段。Rails 库为您处理大部分的工作。要将 Ajax 添加到这个应用程序中,需要以下四个步骤:
- 配置 Rails 以使用 JavaScript。
- 更改时间链接来提交 JavaScript Ajax 请求,而不是仅呈现一个 HTML 链接。
- 指定要更新的 HTML 片断。
- 为更新的 HTML 内容准备一个位置。
- 构建一个控制器方法,或者一个视图来呈现 Ajax 响应。
首先,更改 app/views/ajax/show.rhtml 中的代码,使其与清单 5 类似:
清单 5. 更改显示视图来使用 Ajax
<%= javascript_include_tag :defaults %>Ajax showClick this link to show the current <%= link_to_remote "time", :update => 'time_div', :url => {:action => "time"} %>.
精彩图集
精彩文章
热门标签赞助商链接 |






