AJAX应用风格与Ruby编程的深入探讨
1. RJS的作用与工作原理
RJS(Ruby JavaScript)为维护Rails的37signals公司带来了代码改进。在2006年8月一篇关于重写其组织者应用Backpack的博客文章中,该公司提到将应用的大部分UI逻辑从手写的JavaScript文件转移到使用RJS模板的Ruby代码中,这使得应用的JavaScript代码减少了约1600行,并且由于编辑状态现在按需加载,而不是在每次页面加载时批量包含,因此可以提供标记更少的页面。
RJS的工作方式类似于浏览器为JavaScript环境提供DOM API,它提供了一个page对象来“访问”DOM。这里的“访问”加引号是因为服务器上执行的代码实际上无法访问浏览器的DOM。相反,在服务器响应客户端请求之前,对page对象的调用会被转换为JavaScript代码。例如,以下RJS代码:
page[:chat_window].insert_html :bottom, content_tag('li', 'pickled herring')
会生成以下JavaScript代码(忽略所有十六进制代码):
try {
$("chat_window").insertHtml("bottom", "\074li\076hey\074/li\076");
}
catch (e) {
alert('RJS error:\n\n' + e.toString());
alert('$(\"chat_window
超级会员免费看
订阅专栏 解锁全文
10

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



