我将jQuery引入rails3应用程序,并对最佳实践提出疑问.
我发现使用jQuery不引人注意地使用我的所有Javascript非常有用,但我将所有内容都放在application.js中.我的所有网页都包含javascript,因为application.html.erb包含<%= javascript_include_tag:all%>我也在使用$(document).ready(function(){…},每次从一个页面到另一个页面时都会执行.
目前,我的应用程序足够小,我没有看到任何性能问题.但是,我只是想知道这样做的正确方法是什么.是否最好只加载相关脚本并且往返服务器?或者,包括所有的javascript文件在一个更好?
我在$(document).ready(function(){…}中的一行示例是:
$( “#USER_PASSWORD”)ATTR( “自动完成”, “关闭”).
一方面,能够使用一行初始化我在应用程序的任何页面上的任何密码字段是非常方便的.另一方面,我可以看到$(document).ready()如何能够非常快地变长,从而影响代码的可读性. $(document).ready()中可能还有很多与当前页面无关的代码(例如,在没有密码字段的页面中的上述示例),这是否会影响性能?
最佳答案 我尝试了一些在rails应用程序中使用jQuery的方法,我遇到了最简单,更清晰,最有条理的集成
JavaScript代码的方法是使用* .js.erb视图文件.
我们的想法是你在这些文件中编写你的UI行为(有意义的,因为它们是MVC结构中View的一部分),然后你在必要时调用它们:
$.get(url_for_your_js_view, data, null, "script");
你可以看到这种做法在行动(并且更好地解释)in this RailsCast.
顺便说一句,它也很容易优雅地落到无脚本的场景,所以我真的建议你花时间学习这个技能,即使它在开始时可能有点不直观.