我正在使用public release 2
的{{1}}。
我在我的视图中添加了Yahoo User Interface (YUI) 3.5
文件。我正在做的就是为点击事件订阅一个按钮,将用户带到另一个视图。没什么好看的。
当我订阅click事件的按钮时,这是我的脚本引用和我的脚本:
yui-min.js
但是当页面加载时,它会使<script src="/Assets/yui_3.5.0pr2/yui/build/yui/yui-min.js"></script>
<script>
YUI().use('node', 'event', function (Y) {
Y.one('#cancel').on('click', function (e) {
window.location = '/Administration/User';
});
});
</script>
加载所有css文件和其他YUI3所需的文件。我可以将我的所有5个css文件放入1中,但这仍然是35个请求。总下载大小约为39 requests
。
176kb
这对我没有意义。为什么所有这些文件都加载了,我没有全部使用它们,或者我呢?这有什么好处?我正在做什么,是否使用了所有这些javascript文件,或者YUI加载器是否加载了未使用的额外文件?
答案 0 :(得分:0)
在这种特殊情况下,只是为了你需要的东西,稍微调整一下就可以了。首先,您可能不需要加载CSS文件。在这种情况下,只需使用fetchCSS
配置选项。然后,您可能不需要所有Node和Event模块来订阅简单事件。仅node-base
就足够了。所以你可以尝试一下:
YUI({ fetchCSS: false }).use('node-base', function (Y) {
Y.one(button).on('click', fn);
});
使用Gzip将其分解为11个文件和18kb。
但总的来说,几乎每个文件都需要。许多文件的原因是YUI团队改变了他们的构建过程并采用了更细粒度的方法。这样Loader可以获得它所需要的东西,并避免加载大量不必要的代码。缺点是,如果您自己托管并且不使用系统来组合文件,则下载速度非常慢。
我建议看看Ryan的Combohandler for NodeJS:https://github.com/rgrove/combohandler。其他服务器端平台还有其他类似的项目。