草庐IT

javascript - 按照 Google 的建议优化 CSS 交付

coder 2024-02-28 原文

我一直在通过 Google 的网站速度测试器运行我的网站

( https://developers.google.com/speed/pagespeed/insights/ )

并尝试解决所有发现的问题。作为必须解决的问题以红色突出显示的一个主要问题是:

“消除首屏内容中的渲染阻塞 JavaScript 和 CSS”

“优化 CSS 交付”“移除阻止呈现的 JavaScript:”

我首先将我的一些 CSS 文件组合在一起,以减少在我的 < head=""> 标签中调用外部 css 文件的数量,并且我向除了 jquery.min.js 之外的所有 javascript 调用添加了“延迟”必须先调用一个。

这修复了 Google 告诉我要修复的一些示例。但我还剩下更多。我读到将您的 CSS 放在 HTML 中的 标签内可以解决此问题。然而,我的 CSS 总共有大约 18,000 行,这对我来说不是一个选择。

然而,我突然意识到我可以使用 PHP include 将我的 .css 文件包含在我的 中,而不是传统的调用它们的方法。

所以现在我这样称呼我的 CSS:

<style><?php include "css/style.min.css";?></style>

而不是像这样:

<link rel="stylesheet" href="/css/style.min.css">  

这使我的代码简洁明了,Google 似乎很喜欢它。我的网站现在为台式机选择 90/100,为移动电话选择 86/100。

我遇到的问题是,由于包含 CSS 和 Javascript,我页面的源代码现在非常庞大。

这是否会产生任何不可预见的负面 SEO 影响或对我的网站在搜索引擎眼中的表现产生影响?

我的所作所为不受欢迎吗?

最佳答案

您的新方法的主要缺点是,如果您在文件的头部包含 CSS 和 JS,则可以最大限度地减少 DNS 查找(这可能有助于在 Google 速度测试中获得更好的排名)但所有源代码不会被浏览器缓存(因为它会在页面请求时再次下载)。 因此,如果您的用户访问您网站上可能使用相同资源的其他页面,他们可能会遇到响应缓慢的情况。

如果大量用户因为长时间等待而离开您的网站,这对您的网站不利,对于 SEO 而言也是如此,因为跳出率会更高并影响您的整体排名。

我的建议:

  • 压缩并连接 JS 和 CSS。
  • 不要将代码嵌入 <head> ;相反,使用 <link> .
  • 如果您的 JavaScript 和 CSS 文件很大,您需要使用模块化方法(例如:将 AMD 用于 JS)。您可以附加 <link>还可以在需要时即时为 CSS 标记(查看一些 library examples )。
  • 如果您使用 jQuery 等常见 JS 库,请考虑使用流行的 CDN。

关于javascript - 按照 Google 的建议优化 CSS 交付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28412118/

有关javascript - 按照 Google 的建议优化 CSS 交付的更多相关文章

  1. ruby - capybara field.has_css?匹配器 - 2

    我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No

  2. css - 用 watir 检查标签类? - 2

    我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes

  3. HBase Region 简介和建议数量&大小 - 2

    Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile

  4. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  5. ruby-on-rails - 我需要从 HTML 转到 markdown,有什么建议吗? - 2

    我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby​​脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162

  6. ruby - Google-api-ruby-client 翻译 API 示例 - 2

    很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个

  7. ruby-on-rails - Assets 管道损坏 : Not compiling on the fly css and js files - 2

    我开始了一个新的Rails3.2.5项目,Assets管道不再工作了。CSS和Javascript文件不再编译。这是尝试生成Assets时日志的输出:StartedGET"/assets/application.css?body=1"for127.0.0.1at2012-06-1623:59:11-0700Servedasset/application.css-200OK(0ms)[2012-06-1623:59:11]ERRORNoMethodError:undefinedmethod`each'fornil:NilClass/Users/greg/.rbenv/versions/1

  8. ruby-on-rails - Rails - 理解 application.js 和 application.css - 2

    rails新手。只是想了解\assests目录中的这两个文件。例如,application.js文件有如下行://=requirejquery//=requirejquery_ujs//=require_tree.我理解require_tree。只是将所有JS文件添加到当前目录中。根据上下文,我可以看出requirejquery添加了jQuery库。但是它从哪里得到这些jQuery库呢?我没有在我的Assets文件夹中看到任何jquery.js文件——或者直接在我的整个应用程序中没有看到任何jquery.js文件?同样,我正在按照一些说明安装TwitterBootstrap(http:

  9. css - Rails 4.1 和 Bootstrap 3 字形图标不工作 - 2

    我正在尝试消除使用Bootstrap3的Rails4元素中的glyphicon错误。我没有使用任何Bootstrapgem将其添加到Assets管道中。我手动将bootstrap.css和bootstrap.js添加到各自的app/assets目录下,分别添加到application.css和application.js什么的我现在在网络浏览器的控制台中看到以下内容:GEThttp://localhost:3000/fonts/glyphicons-halflings-regular.woff404(NotFound)localhost/:1GEThttp://localhost:30

  10. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

随机推荐