我的问题是关于通过Rails应用程序进行思考。
我有一个丰富的ajax应用程序,它使用google maps api, jquery, jquery ui
和许多jquery plugins
,例如history, browser, hotkeys and scrollto
。
现在它有一个PHP后端,但我想在Rails on Rails中重写它。
从代码中删除所有Rails javascripts(例如javascript_include_tag
)并仅使用我的吗?
答案 0 :(得分:3)
如果您愿意,可以这样做。使用javascript_include_tag
的主要(唯一?)原因是为了确保当您的服务器托管的JS脚本发生更改时,您的用户的浏览器会下载新脚本而不是使用其缓存副本脚本,如果他们以前访问过您的网站,他们将拥有该脚本。
基本上,如果文件'public / javascripts / myscript.js'存在,那么
<%= javascript_include_tag 'myscript.js' %>
回到
<script type="text/javascript" src="/javascripts/myscript.js?CHECKSUM"></script>
其中CHECKSUM
是文件的最后修改日期或其内容的校验和(我不知道哪个 - 足以说明每当文件发生变化时值会发生变化,欺骗浏览器下载新脚本)。
如果您的服务器上没有相关的javascript文件(比如说您从Google API中提取jQuery),那么Rails将不知道如何生成校验和,结果看起来像常规{ {1}}标记(不含<script>
位)。
因此,没有理由在您未自行托管的脚本上使用?CHECKSUM
。但是如果你有自己的自定义脚本文件 - 特别是如果这些文件将以适度的频率更改 - 那么你应该考虑使用它;这是确保每个人都能看到该网站真实当前版本的便捷方式。
希望这有帮助!
答案 1 :(得分:1)
我不认为这是正常的,但你绝对可以做到。请记住,任何在rails中自动创建JS代码的东西都可能会破坏。
如果你想保留自动创建JS的功能,你需要编写一个javascript驱动程序,就像rails的jquery驱动程序一样工作......这可能就像你重新发明轮子一样已经在使用jQuery了。
答案 2 :(得分:1)
只要你包含jquery就可以了。您还可以使用jquery-rails gem轻松地将Rails应用程序从默认原型迁移到jquery。然后,像往常一样包含所有现有的javascript文件。