zoukankan      html  css  js  c++  java
  • 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)外链选择:与一些和你网站相关性比较高,整体质量比较好的网站交换友情链接,巩固稳定关键词排名。
  • 相关阅读:
    redis从入门到放弃 -> 数据持久化
    yum怎么用?
    centos7.2系统没有eth0网卡
    redis从入门到放弃 -> 部署方案
    redis从入门到放弃 -> 简介&概念
    mysql用户权限设置
    mysql安装注意
    解决windows下的mysql匿名登陆无法使用mysql数据库的问题
    参数化测试--sheet表的应用
    整理QTP知识之1
  • 原文地址:https://www.cnblogs.com/cauliflower/p/10508523.html
Copyright © 2011-2022 走看看