2010-08-28 50 views
4

我正在将jQuery引入到rails3应用程序中,并且有一个关于最佳实践的问题。jQuery和Rails 3

我发现它非常有用做所有我的Javascript不显眼地使用jQuery,但我把一切都放在application.js中。 javascript包含在我的所有页面中,因为application.html.erb有<%= javascript_include_tag :all %>我也在使用$(document).ready(function(){…},每当我从一个页面转到另一个页面时,它会执行。

目前,我的应用程序足够小,我没有看到任何性能问题。但是,我只是想知道什么是正确的做法。只加载相关脚本并往返服务器是否更好?或者,包括所有的JavaScript文件在一个更好?行我有$(document).ready(function(){…}

一个例子是:

$("#user_password").attr("autocomplete","off");

一方面,这是很方便的可以初始化一个应用程序的任何页面上的任何密码字段我有线。另一方面,我可以看到$(document).ready()很快就会变得非常长,影响代码的可读性。 $(document).ready()中的代码很可能与当前页面不相关(例如,上面的示例在没有密码字段的页面中),是否会影响性能?

回答

2

我已经尝试了几种在rails应用程序中使用jQuery的方法,并且我遇到了使用*.js.erb查看文件的最简单,最清晰,最有组织的JavaScript代码整合方式。

的想法是,你写你的UI行为在这个文件(情理之中的事情,因为他们是在MVC结构中的视图的一部分),然后你叫他们在必要时与此:

$.get(url_for_your_js_view, data, null, "script"); 

你可以看到这种做法在行动(更好地解释)in this RailsCast。顺便说一下,它也很容易适合掉到无脚本的场景,所以我真的建议你花时间去学习这个技能,即使它可能有点不直观开始。