Rails系统中的AJAX开发技术简析(4)

80酷酷网    80kuku.com

  ajax|rails七、 使用观察器

  Rails能够让你监视一个字段的值,并且在无论何时字段值发生变化时,都作一次到一个行动处理器的Ajax调用。当前被观察字段的值被发送到本次调用相关的寄送数据的行动处理器中。

  最常用的一种情况是实现一个实况查找:

<label for="searchtext">Live Search:</label>
<%= text_field_tag :searchtext %>
<%= observe_field(:searchtext,
:frequency => 0.25,
:update => :search_hits,
:url => { :action => :live_search }) %>
<p>Search Results:</p>
<div id="search_hits"></div>

  这个代码小片段实现监视一个称为searchtext的文本框字段的值。每隔四分之一秒,Rails检查该字段的变化。如果该字段发生变化,浏览器将作一个到live_search行动处理器的Ajax调用,并把结果显示在search_hits div中。

  你可以在我的博客上看到一个这种现场查找的实际展示。在右上角的搜索框中,你可以试着输入"enterprise"或"rails",看看发生了什么。

  八、 是否应用Ajax技术

  当你使用Ajax技术来更新一个web页面部分时,用户得到的是快速响应性和流畅性。然而,用户也失去了书签功能和使用浏览器的向后按钮的能力。这两个缺点来源于同一个事实:URL不做改变,因为浏览器并没有装载一新的页面。

  不要仅因为Ajax相当酷而使用它,而应考虑在你的web应用程序的用户接口中什么最为重要。

  例如,如果一个web页面显示一个帐户列表-上面有一些诸如添加、删除和改名帐户等等的操作,这些都是Ajax的良好候选。如果用户点击一个超级链接来显示属于一个帐户的所有清单-这种情况下,你应该显示一新页面并且避免Ajax。

  这意味着用户能够记下该帐户页面和清单页面,并且使用向后和向前按钮在它们之间切换。用户不能够记下所有这些列表之一中的操作或使用向后按钮来尝试撤消一个在该列表上的操作(在一传统型web应用程序中,这两者你也都希望避免发生)。

  九、 添头

  我想介绍给你许多真正酷的东西,但是却不会深入到细节中去讨论。

  Web页面上载文件的功能经常令一些用户紧皱眉头,因为用户在上载处理过程中,他不会收到任何反馈信息,除了屏幕上漏斗鼠标在不停地转转转……通过使用Ajax技术,你可以与服务器进行通讯-在上传过程中,可以检索和显示上传的状态。Sean Treadway和Thomas Fuchs实现了一个有关如何实现这种技术的现场展示,这是通过使用Rails和一个视频来实现的。

  另外,Rails使用的Prototype JavaScript库也实现了大量的可视化效果。效果演示页面上有一个这些效果的在线演示,其中包括JavaScript对使用之的调用。

  十、 感想

  自从孤立的web站点服务于静态的页面以来,Web已经经历了一段相当长的里程。如今,我们在慢慢地进入到一个新的时代-站点动态地相互链接在一起,web API允许我们容易地在已有的服务上进行这样的创建,而且web用户接口已变得越来越流畅和具有快速响应性。很明显,Ajax在如今已浮出水面的Web 2.0传奇中将占有举足轻重的地位。

  无论如何,把复杂的Ajax特征增加到一个web应用程序应该是一堆相当大量的工作,但是Rails使得所有这些变得太简单了。

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: