javascript – 如何将我们的JS命名空间用于Rails资产管道

前端之家收集整理的这篇文章主要介绍了javascript – 如何将我们的JS命名空间用于Rails资产管道前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我了解轨道3.1资产管道背后的原因:我们将所有JS编译成一个整齐,可缓存的文件,以提高性能.我们想要的很好

但是,加载所有内容也意味着我们必须非常小心,如果我们附加了一些JS,我们不会在多个页面上使用某个ID或类.否则,JS将在两个页面上启动,因为它始终加载.

现在,我们想要实现的是:
*我们希望将所有内容保存在一个单一的JS文件中(我们知道我们如何分别加载文件,只是不想要)
*我们要命名每个controller_name.js中的JS,所以只有当适当的命名空间被初始化时才加载它
*我们想通过从< body>< body>上的数据属性读取当前控制器来初始化适当的命名空间.我们的布局标签

问题是:我们没有一个好主意如何在JS中实现.特别是,我们应该如何命名空间JS,然后根据HTML标签内容动态地初始化它.

任何帮助是极大的赞赏!

解决方法

这是一种命名空间控制器/动作级别的方法

> http://www.viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution/
以上是http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/的启发

你基本上宣布你身体如此

<body data-controller="<%= controller_name %>" data-action="<%= action_name %>">

然后这些方法调用(每个方法都有一系列的方法 – 所以如果你需要每个页面上的东西,它都是共同的/ init,或者所有用户的操作,这在user / init上,或者只有用户显示页面?这是用户/展示.

SITENAME.common.init();
SITENAME.users.init();
SITENAME.users.show();

我已经使用了它,它的工作非常好.

猜你在找的JavaScript相关文章