Ruby on Rails有很多方法可以生成JavaScript。特别是在Ajax方面。不幸的是,我经常看到它产生的JavaScript有一些问题。
Rails通常使用内联事件处理。
<a onclick="somejavascript(); return false;" />
这通常是不赞成的,因为它与XHTML的混合行为。
生成的JavaScript也非常依赖于Prototype。就个人而言,我更喜欢jQuery。
根据我的经验,许多Rails开发人员的态度是尽可能多地编写Ruby代码。最后一步是生成一些非常程序化和重复性的JavaScript。通常,此代码最终变得非常不灵活且难以调试。
所以,我的问题是:你为你的项目手动编写了多少JavaScript,有多少是用Rails / Ruby生成服务器端的?或者是否有一种幸福的媒介可以让你获得两者的好处?有一个子问题:如果你手动编写了很多JavaScript,你使用什么技术将它放到MVC模型中?
答案 0 :(得分:5)
如果您更喜欢jQuery,可以使用jQuery on Rails Project。用jQuery替换Prototype。
Rails在Javascript生成方面的一些做法很好,有些则很糟糕。在不好的情况下,自己写,并保持不引人注目。在任何时候你都对Javascript Rails生成感到不舒服,你可以继续自己编写。
请务必查看使用Rails完成的unobtrusive Javascript这个精彩的介绍。
答案 1 :(得分:4)
我曾经在Symfony(一个Rails克隆)工作,起初,我们使用了很多Javascript助手。客户端要求导致我们(我!)必须编写许多帮助程序无法生成的代码。我最终得出结论,我宁愿不使用帮助
在我看来,渐进式增强是可行的方法。生成标准友好的HTML,在没有启用JavaScript的情况下工作,然后在文档准备就绪的基础上堆积功能。
顺便说一句,我也从Prototype切换到jQuery,并且不想切换回来!在我看来,jQuery更适合渐进增强。
答案 2 :(得分:0)
让Rails做得尽可能多。然后,当您遇到问题时,请开始用手动编码版本重写它。
答案 3 :(得分:0)
none,如果需要,请使用jquery。 Ajax和ie js bug很难被追踪