我有一个带JS(jQuery)和CSS的HTML文件。我想要一个转换器来转换所有文件,最小化它,并将它全部放在index.html中。 Google似乎正在使用它,它们没有外部文件,甚至没有图像,一切都在一个文件中,我确定在发布之前预编译。
这也是一个好主意吗?
答案 0 :(得分:2)
一般来说,这不是一个好主意。
拆分CSS和JavaScript文件意味着可以单独缓存它们。您可能会在许多页面上使用通用的CSS和JavaScript。如果您不允许缓存这些文件,而是将它们存储在每个页面中,那么用户就会为他们访问的每个页面有效地下载这些文件的新副本。
现在, 是提供这些文件的缩小版本的好主意。还要确保添加gzip或deflate传输编码以便压缩它们。文本压缩得很好......通常比例为1/8。
(我应该注意到,有一次我将所有内容都加载到一个文件中。我正在为Nintendo Wii开发单页Web应用程序,它根本没有缓存功能。是关于将所有内容放入单个文件中的唯一实例。即便如此,如果您在服务器端自动化它也是值得的。)
答案 1 :(得分:1)
我不建议用JS连接CSS。 只需将您的CSS放在页面顶部,然后将js放在底部。
要缩小CSS和JS,您必须使用gruntjs
另外,我建议您阅读这篇文章:Front-end performance for web designers and front-end developers
答案 2 :(得分:1)
如果您的目的是加快页面加载速度:
对于图片:尝试使用来自不同域的图片精灵或图片,因为浏览器喜欢从不同的域而不是仅仅一个域下载资源。
对于脚本以及css:使用可以减少空格并减小大小的在线缩小器(如果您在Web托管中,您的主机可能已经在压缩脚本为你使用gzip等)
对于索引页面等目标网页:如果样式较少,请尝试将其插入<style></style>
标记内,这会使页面加载速度非常快,Facebook移动版也会如此就这样。
答案 3 :(得分:-1)
如果这不是一个好主意,谷歌就没有使用它了!
如果您将所有内容放在单个文件中,当浏览器检查是否有更新版本的文件时,您将获得更少的HTTP请求。
您还会了解到某些资源未刷新的问题,这对于“普通”开发人员来说是一个令人头痛的问题,但这对AJAX应用程序来说是一场灾难。
我不知道有任何公开的工具可以做到这一切,谷歌确实拥有自己的工具。还要注意,例如在GWT中,许多这样的嵌入是由编译器完成的。
您可以做的是搜索:
CSS图像嵌入器 - 用于将图像编码为CSS
CSS和JS minifier - 用于构建单个CSS / JS并将其最小化
你需要一些简单的工具将它嵌入到HTML中。