Javascript RJS邪恶吗?为什么?
我听到一群rails开发者说RJS是邪恶的。我从来没有使用过它,因为我总是使用经典的javascript或jquery来实现我想要的,所以我没有注意。现在我进入一些遗留代码,到处都是RJJavascript RJS邪恶吗?为什么?,javascript,ruby-on-rails,rjs,Javascript,Ruby On Rails,Rjs,我听到一群rails开发者说RJS是邪恶的。我从来没有使用过它,因为我总是使用经典的javascript或jquery来实现我想要的,所以我没有注意。现在我进入一些遗留代码,到处都是RJ 所以。。。这是真的吗?使用RJ的缺点/优点是什么 考虑到我在Rails项目中用JQuery替换了原型库,我发现RJ非常有用。现在,将JavaScript传递回要执行的服务器并不完全是主流,这有时会让人感到痛苦 但是,我没有发现它与RJS的一般问题。我唯一的抱怨是,我通常不得不将RJS和普通的旧Javascrip
所以。。。这是真的吗?使用RJ的缺点/优点是什么 考虑到我在Rails项目中用JQuery替换了原型库,我发现RJ非常有用。现在,将JavaScript传递回要执行的服务器并不完全是主流,这有时会让人感到痛苦
但是,我没有发现它与RJS的一般问题。我唯一的抱怨是,我通常不得不将RJS和普通的旧Javascript混合到我的.RJS文件中,所以这有点毫无意义。但它确实为您提供了一个干净的地方/方法来处理Javascript效果和AJAX调用,因此我认为作为“放置代码的标准地方”,它非常好。我不知道我是否会说不好,但RJS(或任何生成JS的服务器端语言)不是我的第一选择。我更喜欢手写JS。有了jQuery,我真的很喜欢编写JS,并将我的JS保存在application.JS中,感觉很干净
要扩展一点。。。我认为RJ是一种不必要的抽象。我想知道JavaScript和jQuery。我想知道如何操作DOM以及如何进行AJAX调用。有了我的JS/jQuery知识,我可以很容易地使用它,不必怀疑这个框架是否能为我处理JS。RJS很好,主要是因为它很容易集成到Rails项目中。为了使事情更简单并保持低文件数,您可以将其嵌入控制器中,并且它有许多来自prototype/scriptaculous库的易于使用的帮助程序。感觉更像红宝石 这并不意味着它与您的普通Rails代码分离得很干净,因为它很快就与您的其他代码混合在一起了。它还需要通过prototype和scriptaculous js文件包含更多的外部库 jQuery的一些内容非常干净。语法非常疯狂,但这意味着您可以将js完全从页面/控制器(不引人注目的js)中拉出来,这是一种更干净/划分的方式
此外,jQuery看起来像javascript。所以你不会得到javascript和Ruby代码的奇怪混合。我喜欢Ruby。我不喜欢Javascript。但我更不喜欢两者的混合。如果你知道JS,你会觉得它很熟悉
Ryan Bates有一个关于将RJS转换为jQuery的屏幕广播。可能会让你很好地了解这两种语言在语法上的区别:在讨论RJS是否邪恶之前,让我们先谈谈RJS是什么 RJS对ActiveRecord为SQL提供的高功能Javascript库应用相同的抽象级别。然而,RJS对Javascript库的覆盖远没有ActiveRecord对SQL适配器的覆盖那么全面 Rails仅为Prototype/Script.aculo.us提供RJS支持。但是,有一些插件可以使用或正在开发中,以支持其他Javascript库。例如,JRails重写了基于原型的帮助程序以使用jQuery。mootools和Dojo也有类似的插件
人们认为RJS是邪恶的,通常是那些不喜欢它产生原型代码的人,或者那些认为他们可以用原始JavaScript实现更容易的人。 RJS不是完美的,就像ActiveRecord不是完美的一样,有时候你不得不写原始Javascript或SQL来完成你的工作。同样,与ActiveRecord一样,使用高级选项越舒适,无需编写原始代码即可完成的任务就越多 RJS的一个奇妙之处在于,它们本质上是视图,可以生成Javascript。很容易将RJ提取到可以根据需要包含的部分中,作为对控制器的响应或作为页面中包含的自定义Javascript函数的一部分。这使得代码更加枯燥,从而简化了维护
就我个人而言,我经常使用RJ。我发现它是一次接触大量DOM元素的完美方式。它带来了双重好处,允许我创建AJAX丰富的站点,而无需编写太多Javascript。我讨厌写Javascript 如果您不熟悉JS(或类似Prototype的框架),但需要AJAX功能,RJS是最好的方法。使用RJS的另一个优点是速度快。轻松快速地编写RJS代码 我以前在所有Rails项目中都使用RJ。现在我更熟悉Prototype(和jQuery),这就是我现在编写JS代码的原因。我需要这个,因为有很多RJ的控制器失去了它的生产力。将RJS代码迁移到JS是扩展控制器的第一步 没有人能对你说绝对的,什么是最好的方式-使用或不使用RJ。每个人都应该选择自己的方式 例如,我更喜欢在我的应用程序的管理部分使用RJS(无需缩放任何内容),并为前端部分编写JS。RJS不是“邪恶的”,但我认为它有两个问题: