页面优化方法

1) 避免head标签js堵塞:

所有放在head标签里面的js和css都会堵塞渲染;如果这些css和js需要加载很久的话,那么页面就空白了;

用google的cdn加载一个jQuery文件是访问不了的,所以标签一直在转圈,页面没有任何显示;

有两种解决办法,第一种是把script放到body后面,这也是很多网站采取的方法。第二种是给script加defer或者async的属性,一旦script是defer或者async延迟的,那么这个script将会异步加载,但不会马上执行,会在readystatechange变为Interactive后按顺序依次执行;

两者相同点:

  • 加载文件时不阻塞页面渲染
  • 对于inline的script无效
  • 使用这两个属性的脚本中不能调用document.write方法
  • 有脚本的onload的事件回调

两者不同点:

  • async下,js一旦下载好了就会执行,所以很有可能不是按照原本的顺序来执行的。如果js前后有依赖性,用async,就很有可能出错。
  • 如果一个script加了defer属性,即使放在head里面,它也会在html页面解析完毕之后再去执行,也就是类似于把这个script放在了页面底部。

(2) 减少head里面的css资源:

css必须放在head标签里面,如果放在body里面会造成对layout好的dom进行重排造成页面闪烁;但是一旦

放在head标签里面又会堵塞页面渲染;所以要尽可能的减小css体积;

例:不要放太多base64在css里面,webpack构建工具常常会配置图片体积小于多少的直接转换成base64加载,这

里是挺影响性能的,一个是不能用到缓存机制,另一个就是加大了css的体积;个人建议上线项目直接把图片用cdn托

管;

(3)延迟加载图片:

对于很多网站来说,图片往往是占用最多流量和带宽的资源;

(4) DNS解析优化:

DNS查询需要花费大量时间来返回一个主机名的IP地址;

在我们的网站中,可能会加载到很多个域的东西,比如引入了百度地图啊之类的sdk和一些自己的子域名服务;第一次打开网站时要做很多次DNS查找;DNS预读取能够加快网页打开时间;

1. 优化图像

  图像对于吸引访客的关注是很重要的。但是你添加到页面上的每一张图片都需要用户从你的服务器下载到他们的电脑上。这无疑增加了页面的加载时间,因此很可能让用户离开你的网站。所以,优化图像是非常必要的。

  过大的图像需要的下载时间更多,因此要确保图像尽可能的小。可以使用图像处理工具如PS来减小颜色深度、剪切图像到合适的尺寸等。

 2. 去掉不必要的插件

  一个非常值得关注但经常被忽略的因素是你网站安装的插件。如今,大量免费的插件诱导网站开发者添加很多不必要的功能。您安装的每个插件都需要服务器处理,从而增加了页面加载时间。所以禁用和删除不必要的插件。

  然而,有些插件是必须的,如社交分享插件,你可以选择CMS内置的社交分享功能来代替安装插件。

 3. 减少DNS查询(DNS lookups)

  减少DNS查询是一个WEB开发人员可以用了页面加载时间快速有效的方法。DNS查询需要话费很长的时间来返回一个主机名的IP地址。而浏览器在查询结束前不会进行任何操作。对于不同的元素可以使用不同的主机名,如URL、图像、脚本文件、样式文件、FLASH元素等。具有多种网络元素的页面经常需要进行多个DNS查询,因而花费的时间更长。

  减少不同域名的数量将减少并行下载的数量,加速你的网站

 4. 最小化重定向

  重定向增加了额外的HTTP请求,因此也增加了页面加载时间。然而有时重定向却是不可避免的,如链接网站的不同部分、保存多个域名、或者从不存在的页面跳转到新页面。

  重定向增加了延迟时间,因此要尽量避免使用它。检查是否有损坏的链接,并立即修复。

 5. 使用内容分发网络(Content Delivery Network CDN)

  服务器处理大流量是很困难的,这最终会导致页面加载速度变慢。而使用CDN就可以解决这一问题,提升页面加载速度。

  CDN是位于全球不同地方的高性能网络服务,复制你网站的静态资源,并以最有效的方式来为访客服务。

 6. 把CSS文件放在页面顶部,而JS文件放在底部

  把CSS文件在页面底部引入可以禁止逐步渲染,节省浏览器加载和重绘页面元素的资源。

  JavaScript是用于功能和验证。把JS文件放在页面底部可以避免代码执行前的等待时间,从而提升页面加载速度。

  这些都是一些减少页面加载时间和提高转换率的方法。在某些情况下,需要JavaScript在页面的顶部加载(如某些第三方跟踪脚本)。

 7. 利用浏览器缓存

  浏览器缓存是允许访客的浏览器缓存你网站页面副本的一个功能。这有助于访客再次访问时,直接从缓存中读取内容而不必重新加载。这节省了向服务器发送HTTP请求的时间。此外,通过优化您的网站的缓存系统往往也会降低您的网站的带宽和托管费用。

 8. 使用 CSS Sprites 整合图像

  多图像的网站加载时间比较久。其中一个解决方法就是把多个图像整合到少数几个输出文件中。你可以使用 CSS Sprites 来整合图像文件。这样就减少了在下载其他资源时的往返次数和延迟,从而提高了站点的速度。

 9. 压缩CSS和JavaScript

  压缩是通过移除不必要的字符(如TAB、空格、回车、代码注释等),以帮助减少其大小和网页的后续加载时间的过程。这是非常重要的,但是,你还需要保存JS和CSS的原文件,以便更新和修改代码。

其他页面优化技巧,html别嵌套太多层,加重页面layout的压力;css选择器的合理运用,减少匹配的计算量;js中别滥用闭包,会加深作用域链,增加变量查找时间;减少http请求之类的等等;

[html] view plain copy

  1. <link rel="dns-prefection" href="https://www.baidu.com">  

在head中写上几个link标签,对标签中的地址提前解析DNS,这个解析是并行发生的,不会堵塞页面渲染;

猜你喜欢

转载自blog.csdn.net/weixin_38606332/article/details/81161867