- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
为什么人们建议缩小 CSS 和 JavaScript 等网络资源,但从来不建议缩小标记? CSS 和 JavaScript 可以在许多不同的页面上使用,而每次都会加载标记,这使得标记的缩小变得更加重要。
最佳答案
这里写的答案非常过时,有时甚至没有意义。与 2009 年相比,很多事情都发生了变化,所以我会尽量正确地回答这个问题。
简短回答 - 您绝对应该缩小 HTML。今天很简单,给出大约 5% speedup .如需更长的答案,请阅读整个答案
过去人们手动缩小 css/js(通过一些特定工具运行它来缩小它)。自动化这个过程有点困难,而且肯定需要一些技能。知道很多高级网站甚至现在都没有使用 gzip(这是微不足道的),人们不愿意缩小 html 是可以理解的。
那么为什么人们缩小 js 而不是 html?当你缩小 JS 时,你会做以下事情:
var isUserLoggedIn
为 var a
)即使在过去,它也带来了很大的改进。但是在 html 中,您不能将长名称更改为短名称,而且在那段时间里几乎没有什么可评论的。所以唯一剩下的就是删除空格和换行符。这只会带来少量改进。
这里写的一个错误论点是因为内容是用 gzip 提供的,所以缩小没有意义。这是完全错误的。是的,gzip 减少缩小的改进是有道理的,但是如果你可以适本地修剪它们和 gzip 只是重要的部分,为什么你应该 gzip 评论,空格。这就像您有一个要归档的文件夹,其中有一些您永远不会使用的废话,您决定只压缩它而不是清理和压缩它。
另一个为什么进行缩小没有意义的论点是它很乏味。可能这在 2009 年是正确的,但在这之后出现了新的工具。现在您不需要手动缩小标记。像 Grunt 这样的东西安装 grunt-contrib-htmlmin 很简单并将其配置为缩小您的 html。您只需要 2 小时来学习 grunt 并配置所有内容,然后一切都会在不到一秒钟的时间内自动完成。听起来 1 秒(您甚至可以使用 grunt-contrib-watch 自动执行任何操作)对于大约 5% 的改进(即使使用 gzip)来说并不是那么糟糕。
还有一个说法是CSS和JS是静态的,而HTML是由服务器生成的,所以你不能预先压缩它。这在 2009 年也是如此,但目前 more和 more网站看起来像一个单页应用程序,服务器很瘦,客户端负责所有路由、模板和其他逻辑。所以服务器只给你 JSON客户端呈现它。这里有很多页面和不同模板的 html。
所以结束我的想法:
关于html - 为什么人们缩小 Assets 而不是 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1306792/
我在我的应用程序中使用rails 4 和 ruby 1.9.3 以及fancybox2-rails gem,但是 Assets 管道存在一个普遍问题。如果我运行 rake task 进行预编译,那
我把我所有的 Assets 都放在我的包里例如myBundle/Resources/public/css/ 然后像这样加载它们: {% block stylesheets %} {{ parent()
我正在创建RoR-6应用程序,并从此行的application.html.erb文件中引发以下错误: javascript_include_tag 'application', 'data-turbo
我正在对 Play Subproject 功能进行更多扩展测试,如下所述:http://www.playframework.com/documentation/2.0/SBTSubProjects .
我是 symfony 2 和 Assetic 的新手。我想在 CSS 中使用 assetic 和 Sass。我使用自定义字体。我在资源下的包中创建文件夹“assets/css”,里面有 _base.s
这是我的目录结构(这只是一个测试项目): stan@mypc:/generate_assets$ sudo tree -L 3 -p . ├── [drwxr-xr-x] assets │ └─
我使用 node.js connect/express。 有人知道支持 TypeScript 源代码即时编译和缩小的 Assets 管理器吗? 知道如何以编程方式调用编译器吗? 我一直在使用 conn
因此,我们在 Assets 管道摘要方面遇到了一个小问题,因为我们有许多 HTML 模板作为 Assets (对于 AngularJS),并且我们使用 asset_path 在 Javascript
我想从iPad的照片库中获取图像URL。 当我尝试从Image Piicker的信息中获取 UIImagePickerControllerReferenceURL 时 我将URL设为: assets
我正在使用带有Assetic的Symfony 2.1.10版,并且在上次 Composer 更新之后,当我尝试运行php app/console assetic:dump时出现以下错误 Dumping
我的 Assets 管道有问题,我已经有一个名为 Assets 的资源/ Controller 。所以我已将 assets.prefix 选项更改为“/externals”。 config.asset
更新到 Expo sdk 34 后,出现此错误:TypeError:Asset.fromModule 不是函数。 (在“Asset.fromModule(image)”中,“Asset.fromMod
将 Play 框架项目从 2.2.4 迁移到 2.3.8 后遇到问题: 这是运行命令“activatorcompile”的错误输出: [error] ...\workspace\testproject
我在将 Google Analytics 添加到我的 Rails 4 应用程序时遇到了一些困难(参见 this post)。 我通过在 /public/assets/google-analytics.
我正在使用 Symfony2 和 Assetic。最近我一直在做很多 CSS 工作,所以在某个时候我需要命令 $ php app/console assetic:dump --env=prod --n
我正在 Android 开发中迈出第一步,并遇到了 Assets 一词。 据我了解, Assets 只是一个未被解析或引用为资源的文件。 这个词有更准确的定义吗?我应该在哪些情况下在我的应用程序中使用
我添加了 danial-farid--angular-file-upload通过 Rails Assets 将库添加到我的 Rails 4 应用程序。主库加载正常,但 sprockets 找不到它包含
这是我的代码,尽管编码非常粗糙: public void loadStack(AssetManager manager, String path) { String[] lis
我正在使用 Assets 管理我的 Symfony 2 框架中的 CSS 文件。它在生产模式下运行良好。 我的问题是在 Debug模式下,assetic 不断将我的文件合并为一个输出文件。这使得跟踪特
我想以编程方式从重复的相册中删除 Assets (照片不是)。我可以使用照片框架删除相册 我想知道如何从相册中删除 Assets 而不从照片应用中完全删除它。我想在多个地方使用它,例如将 Assets
我是一名优秀的程序员,十分优秀!