首先解释一下AJAX的工作原理,其实我都忘了,翻了些以前的笔记才想起来:
比如你提交一个form的时候,不想更新整个页面,只是想更新局部的页面,因为其他的页面内容没有改变,不需要重新载入,否则浪费时间和带宽。这时候就用到AJAX了。
你发送一个xhr request, (XMLhtmlrequest),服务器收到这种request之后,判断request.xhr?, 如果是,则不会返回一个页面给浏览器,而是会返回一段javascript代码给浏览器,浏览器收到这段代码,就执行这段代码,然后这个过程就完成了,就实现了局部更新的目的。而处理xhr请求的代码就放在了后缀为rjs文件中了。
rails为你封装了底层的东西,使你只需要调用一些很简单的方法就可以轻松实现AJAX效果。
使用RJS模板是rails站点最简单的实现AJAX效果的方法,特别是在你需要更新网页的多个元素的时候。
在本节的例子中,我们有一个产品的页面,其中一个表格,用来提交对产品的评价,一旦提交了评价,就会发出一个http post 请求给server,然后server重新发送这个页面给浏览器,浏览器重新载入这个页面。
当用户提交一个新的评论以后,这个页面的很多地方都要被更新,比如显示评论数量的文本,新的评论被加到评论列表中,然后页面上部会有一个flash来告诉用户添加成功了,所有这些需要更新的地方都将被我们的RJS模板更新。
首先,我们修改一下view,让他发出的是一个xhr请求,而不是post请求。
比如你提交一个form的时候,不想更新整个页面,只是想更新局部的页面,因为其他的页面内容没有改变,不需要重新载入,否则浪费时间和带宽。这时候就用到AJAX了。
你发送一个xhr request, (XMLhtmlrequest),服务器收到这种request之后,判断request.xhr?, 如果是,则不会返回一个页面给浏览器,而是会返回一段javascript代码给浏览器,浏览器收到这段代码,就执行这段代码,然后这个过程就完成了,就实现了局部更新的目的。而处理xhr请求的代码就放在了后缀为rjs文件中了。
rails为你封装了底层的东西,使你只需要调用一些很简单的方法就可以轻松实现AJAX效果。
使用RJS模板是rails站点最简单的实现AJAX效果的方法,特别是在你需要更新网页的多个元素的时候。
在本节的例子中,我们有一个产品的页面,其中一个表格,用来提交对产品的评价,一旦提交了评价,就会发出一个http post 请求给server,然后server重新发送这个页面给浏览器,浏览器重新载入这个页面。
当用户提交一个新的评论以后,这个页面的很多地方都要被更新,比如显示评论数量的文本,新的评论被加到评论列表中,然后页面上部会有一个flash来告诉用户添加成功了,所有这些需要更新的地方都将被我们的RJS模板更新。
首先,我们修改一下view,让他发出的是一个xhr请求,而不是post请求。