我听到一群Rails开发人员说RJS是邪恶的。我从来没有使用过它,因为我总是设法使用经典的javascript或jquery来做我想做的事情,所以我没有注意。现在我进入一些遗留代码,到处都是RJS。
所以...是真的吗?使用RJS的缺点/优点是什么?
最佳答案
在讨论它是否有害之前,让我们先谈谈RJS是什么。
RJS将相同级别的抽象应用于ActiveRecord为SQL提供的高性能Javascript库。但是,Javascript库的RJS覆盖范围还不及ActiveRecord的SQL适配器覆盖范围。
Rails附带的RJS仅支持Prototype/Script.aculo.us。但是,有一些插件可以使用或正在开发中,以支持其他Javascript库。例如,JRails重写了基于原型(prototype)的助手来使用jQuery。 mootools和Dojo也存在类似的插件。
认为RJS邪恶的人,通常是不满意RJS生成Prototype代码的人,或者认为RJS可以使用原始Javascript更轻松地完成工作的人。
RJS并不是完美的,就像ActiveRecord也不是完美的一样,您常常不得不不得不编写原始Javascript或SQL才能完成工作。再次像ActiveRecord一样,您对高级选项的适应程度越高,无需编写原始代码即可完成的工作越多。
RJS的一个奇妙之处在于它们本质上是产生Javascript的 View 。将RJS提取到可以根据需要包含的部分中非常容易,既可以作为对 Controller 的响应,也可以作为页面中包含的自定义Javascript函数的一部分。这使代码更加干燥,从而简化了维护。
我个人经常使用RJS。我发现这是一次触摸大量DOM元素的完美方法。它带来了双重好处:无需编写太多Javascript就可以创建AJAX富网站。再说一次,我讨厌写Javascript。