web前端优化

Web前端页面性能优化以及SEO优化

前端优化的目的是什么?

1,从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。
2,从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的源。

前端的页面主要包括xhtml,css,js。其中xhtml就是现实中所谈到的内容,页面的内容:文字,图片,flash,视频等。

tips:
XHTML与HTML之间的差异:html是一种基本的web网页设计语言,xhtml是一个基于XML的置标语言。
最主要的不同:XHTML元素必须正确的被嵌套,元素必须关闭,标签必须小写,必须有根元素。

xhtml的优化

结构语义化

结构包括head和body两个部分,结构语义化主要是body中的标签。
head中其实包括了一些对于我们seo很有用的一些东西,比如title,Description,Keywords,设置缓存等一些其他的信息。
结构中尽量不要出现style和onclick这样的内联的样式和事件,注意结构与表现、行为的分离。

好处

  1. 有利于SEO,易于被搜索引擎抓取,有利于推广;
  2. 便于团队开发和维护;
  3. 方便盲人阅读器、屏幕阅读器等等设备来解析;
  4. 在页面没有css或者css还未加载出来的时候,页面也能呈现出很好的结构,如图片的alt属性;
  5. 遵循分离结构和表现原则;

css和js 优化

  • 使用外部 JavaScript 和 CSS;
  • 削减 JavaScript 和 CSS;
  • css文件放置在head,js放置在文档尾部;
  • 图片文件优化:
1. css sprite:如果网页中使用了大量背景图片,那么这些图片每一张都会发送一个http请求,可以使用css sprite来合并网页中的需要频繁加载的多个图片。对于合并之后的图片,我们需要注意对它图片质量和大小的优化,图片越小加载速度越快。(建议使用PNG8格式的图片结合css sprite,同样的图片,PNG8格式会相对来比GIF小); 
2. 不要在HTML中缩放图像(要不是图片太大谁会缩放啊);
3. favicon.ico (浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站。)要小而且可缓存;
4. 懒加载
  • 多个合并为一个:可以用一个大的css文件来合并多个小的css文件,浏览器在请求每一个css文件时都会发送一个http请求。
  • sass;
  • 减少DOM访问;
  • 用 link代替 @import;
  • 减小Cookie体积,对于页面内容使用无coockie域名;
  • 利用多个域名来存储网站资源:可以节约cookie带宽。节约主域名的连接数,优化页面响应速度;
  • 利用缓存:Ajax调用都采用缓存调用方式,一般采用附加特征参数方式实现,注意其中的<script src=”xxx.js?{VERHASH}”,{VERHASH}就是特征参数,这个参数不变化就使用缓存文件,如果发生变化则重新下载新文件或更新信息。
  • css选择器优化:浏览器以从右到左的方式进行匹配;
#box a{color:#f00};  
//浏览器先遍历页面中所有的 a 元素,然后再找id为box的父元素。

Google 资深web开发工程师 Steve Souders 对 CSS 选择器的执行效率从高到低做了一个排序:

1.id选择器(#myid)
2.类选择器(.myclassname)
3.标签选择器(div,h1,p)
4.相邻选择器(h1+p)
5.子选择器(ul < li)
6.后代选择器(li a)
7.通配符选择器(*)
8.属性选择器(a[rel="external"])
9.伪类选择器(a:hover, li:nth-child)

根据以上「选择器匹配」与「选择器执行效率」原则,我们可以通过避免不恰当的使用,提升 CSS 选择器性能。

  1. 避免使用通用选择器;
    .box *{color:#f00;}
    浏览器匹配文档中所有的元素后分别向上逐级匹配class为box的元素,直到文档的根节点。因此其匹配开销是非常大的,所以应避免使用关键选择器是通配选择器的情况。
  2. 避免使用标签或 class 选择器限制 id 选择器;
  3. 避免使用标签限制 class 选择器;
  4. 避免使用多层标签选择器。使用 class 选择器替换,减少css查找;
  5. 避免使用子选择器;
  6. 使用继承;

SEO优化

    1. 内部优化
        (1)META标签优化:例如:TITLE,KEYWORDS,DESCRIPTION等的优化;
        (2)内部链接的优化,包括相关性链接(Tag标签),锚文本链接,各导航链接,及图片链接;
        (3)网站内容更新:每天保持站内的更新(主要是文章的更新等)。
    2. 外部优化
        (1)外部链接类别:友情链接、博客、论坛、B2B、新闻、分类信息、贴吧、知道、百科、站群、相关信息网等尽量保持链接的多样性;
        (2)外链运营:每天添加一定数量的外部链接,使关键词排名稳定提升;
        (3)外链选择:与一些和你网站相关性比较高,整体质量比较好的网站交换友情链接,巩固稳定关键词排名。
原文地址:https://www.cnblogs.com/cauliflower/p/10508523.html