- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在 Ruby 中尝试新事物 - 在每个页面上,我都在用 jquery 做非常丰富的事情。显然,如果我将所有 jquery 放入 application.js,它会很快变得非常大。
在最后延迟加载特定于页面的 js 文件是否是一种好方法?例如:
<script>
$(document).ready(function() {
$.getScript("/javascripts/this_pages_scripts.js");
});
</script>
有没有一种 rails 方式可以做到这一点?我知道 new.js.erb 等文件和 ujs,但我仍在谈论更多特定于页面的 js - 你知道,拖放初始化器、对话框创建器等。
非常感谢。
最佳答案
我有两种使用方式:
对于只是添加一点点花哨的微小、琐碎的脚本,我经常将它们内嵌在它们修改的模板中(就像你展示的那样),因为这样我更容易跟踪.
对于超过一两行的任何内容,我都保持不显眼,但使用 content_for
加载它
我的应用程序布局如下所示(在 HAML 中):
= javascript_include_tag 'jquery.144.min','rails','jquery.tools','application'
= yield :scripts
重要的部分是yield :scripts
。然后在我需要一些 javascript 的页面中:
- content_for :scripts do
= javascript_include_tag 'photo_form'
这会在 header 中加载 javascript,但前提是给定的模板已显示。 content_for
将内容发送到具有相应名称的 yield
方法。
您可以在任何地方粘贴这样的 yield block -- 我在结束 body 标签之前也有一个。 yield/content_for 真的很方便。
请注意,正如 tadman 在评论中指出的那样,任何不必加载到头部的内容都应加载到页面末尾。
最后要注意的是,如果您有更复杂的东西,您还可以在模板和应用程序 View 之间使用实例变量。例如,我的应用程序中有一个位于应用程序布局中的菜单栏。因此,有时我只想在某些页面上触发特定于上下文的按钮或额外的一行按钮。
在我的应用程序布局中,我调用了一个呈现菜单的部分,菜单代码如下所示:
#menubar (normal menu stuff)
- if @special_menu
#special_menu
那么,在任何模板中你都可以这样做:
- @special_menu = true
... 对于该页面,将出现给定的菜单。您也可以在 Controller 操作中执行此操作,我有一个 Controller ,我在其中添加了一个前置过滤器,将其中一个菜单标志设置为 true。对于您可能想要有条件地包含的任何复杂的 javascript 内容,您可以执行相同的操作。
我从观看这个 railscast 中得到的大部分想法:http://railscasts.com/episodes/30-pretty-page-title
你应该看看!
关于javascript - 在 Rails 中实现每页 JavaScript 的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596275/
在 HTML5 中,是否可以创建仅供单个网页访问的本地存储? 我目前正在尝试编写独立的单页应用程序的可能性,以及用户是否可以自己托管它们,例如在他们的 Dropbox(它有一些公共(public)文件
我正在考虑在我的网站上转换广告的选项,并认为我会从 Google Adsense 开始 - 但是我不确定每页实际上可以有多少广告。我猜可以将横幅与说广告块等混合和匹配 - 那么您可以在单个页面上拥有的
我使用 Jekyll 创建了我的博客。有人告诉我,我的网站正在为某些页面编制 3 个 URL 的索引,这将被归类为 Google 的重复内容。我注意到我可以访问: https://villaagogo
我正在将 sitemesh 用于基于 spring 的站点。问题是我有一些 javascript,我希望它使用 jquery 在一个特定页面的 onload 事件上运行 $(function() {
我有一个分页脚本,它显示所有页面的列表,如下所示: 上一个 [1][2][3][4][5][6][7][8][9][10][11][12][13][14] 下一个 但我想一次只显示十个数字: 上一个
我在 Asp.Net 网站上工作。目前,我正在为每个页面(加载时)创建(并关闭)一个数据库连接。但我不确定,那是真正的方法。我想知道,如果我在静态类或 WebApplication 的主 Global
我想要的是:给定一个 10 页的 pdf 文件,我想在网络上的表格中显示该 pdf 的每一页。实现这一目标的最佳方法是什么?我想一种方法是将这个 10 页 pdf 文件拆分为 10 个 1 页 pdf
我网站的不同页面有不同的 js 需求(主要是插件),有些需要灯箱,有些不需要,有些需要轮播,有些不需要等等。 关于页面加载速度我应该 选项 1 - 在需要时引用每个 js 文件: 所以一页可能有:
我正在使用 Ionic2 slider ,来自其组件:http://ionicframework.com/docs/v2/api/components/slides/Slides/ .我不知道如何让
我正在尝试从 CsrfGuard.properties 启用 token 标准页面。但部署后,当我尝试访问 URL 时,我收到 500 错误,因为它抛出以下异常。 你能帮我解决这个问题吗?我需要在哪里
我是一名优秀的程序员,十分优秀!