我一直在通过 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 而言也是如此,因为跳出率会更高并影响您的整体排名。
我的建议:
<head> ;相反,使用 <link> .<link>还可以在需要时即时为 CSS 标记(查看一些 library examples )。关于javascript - 按照 Google 的建议优化 CSS 交付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28412118/
我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No
我有一个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
Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162
很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个
我开始了一个新的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
rails新手。只是想了解\assests目录中的这两个文件。例如,application.js文件有如下行://=requirejquery//=requirejquery_ujs//=require_tree.我理解require_tree。只是将所有JS文件添加到当前目录中。根据上下文,我可以看出requirejquery添加了jQuery库。但是它从哪里得到这些jQuery库呢?我没有在我的Assets文件夹中看到任何jquery.js文件——或者直接在我的整个应用程序中没有看到任何jquery.js文件?同样,我正在按照一些说明安装TwitterBootstrap(http:
我正在尝试消除使用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
我有这个: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