RJS模板:提升Web应用交互性的利器
1. RJS模板简介
在XHR调用中,以往我们大多从服务器返回HTML来更新页面状态,即更新DOM元素的 innerHTML 属性。但其实还有一种强大的技术,能让XHR调用返回JavaScript在浏览器中执行,这在2005年变得十分流行,Rails团队还将其在服务器端进行了规范化,也就是RJS模板。
RJS模板是存储在 app/views 层级下,扩展名为 .js.rjs 的文件,其中包含向浏览器发送JavaScript命令的代码。它的解析方式与 .html.erb 模板类似,当收到动作请求时,调度器会先尝试查找匹配的 .html.erb 模板;若请求来自XHR,则优先查找 .js.rjs 模板,解析后生成JavaScript并返回给浏览器执行。
RJS模板可用于在多个页面提供标准交互行为,或减少页面上嵌入的自定义JavaScript代码量。其主要使用模式之一是通过单个动作引发多个客户端效果。
1.1 拖放示例分析
以拖放待办事项为例,用户将待办事项从一个列表拖到另一个列表时,该事项的ID会发送到服务器。服务器需将该事项从原列表移除并添加到新列表,然后更新视图中的两个列表。但服务器对一个请求只能返回一个响应,此时有以下几种处理方式:
- 更新父元素 :将两个放置目标包含在一个更大的元素中,更新时更新整个父元素。
- 返回结构数据
超级会员免费看
订阅专栏 解锁全文
422

被折叠的 条评论
为什么被折叠?



