如何扰动处理特定的JavaScript查看
-
29-09-2019 - |
题
我正在尝试采用 棘手 在我的铁轨应用中。
文档中提供的默认配置捕获所有JS文件,包括查看特定的JavaScript:
embed_assets: on
javascripts:
workspace:
- public/javascripts/vendor/jquery.js
- public/javascripts/lib/*.js
- public/javascripts/views/**/*.js
- app/views/workspace/*.jst
stylesheets:
common:
- public/stylesheets/reset.css
- public/stylesheets/widgets/*.css
workspace:
- public/stylesheets/pages/workspace.css
empty:
- public/stylesheets/pages/empty.css
让我们考虑一个情况,仅应在某些视图上执行特定的JavaScript:
$(function(){
alert("View specific message here!");
}
如何避免这种效果?
问候,Alexey Zakharov
解决方案
我的偏爱是在函数中总结“特定于视图的javascript”。然后根据您实际加载的页面调用该功能。这样,您的所有JavaScript都可以被浏览器作为单个文件缓存,并且您可以执行所需的JS部分。
所以我会添加一个 <script>
标记到特定 html.erb
在页面加载上调用特定视图功能的模板。
希望有帮助...
其他提示
我正在挖掘它,以指出Jashkenas方法的替代方法,即仅将行为与特定标签链接在一起。
$(function() {
$('#my-view-object').someBehaviour();
}
那么,捕获量是多少?主要区别在于,JS代码倾向于将某些对象(而不是页面)链接。如果您重新组织观点,则必须更改JS。另一个问题是,JS需要在页面的底部以最大程度地挤出浏览器。如果您将脚本条目放在您的视图中,那么很可能它们最终会遍布整个页面的HTML标记并放慢渲染。
br, - 何塞
不隶属于 StackOverflow