html优化页面的加载速度

 更新时间:2016年12月21日 21:02  点击:1751
这篇文章给大家介绍了如何优化网页加载速度方法,有很多小细节,有兴趣的同学可以研究一下!

性能真的很重要吗?

性能很重要,这个大家都知道。为什么我们还要做出速度很慢的网站,给用户一个糟糕的体验呢?呵呵,让我们进入重点。

HTML

一.避免内链/嵌入式代码:

1) 内联式: 在HTML标签的style属性中定义样式,在onclick这样的属性中定义Javascript代码;

2) 嵌入式: 在页面中使用<style>标签定义样式,使用<script>标签定义Javascript代码;

3) 引用外部文件: 在<style>标签中定义href属性引用CSS文件,在<script>标签中定义src属性引入Javascript文件.

1,2虽然减少了http请求数,但是增加了html的大小,相比3的总体大小甚小,便于分工操作,便于维护。 

二.样式在上,脚本在下:

<html>
  <head>
      <metacharset="UTF-8">
      <title>Browser Diet</title>
      <!-- CSS -->
      <linkrel="stylesheet"href="style.css"media="all">
  </head>
  <body>
     <a>hello</a>
     <!-- JS -->
     <scriptasyncsrc="script.js"></script>
  </body>
</html>

1)样式在head里面,页面渲染很快,会使用户感觉页面加载很快。反之,会先看到错乱的页面布局,给人感觉不好。

2)脚本在上会影响html的渲染或并行加载,并且首屏加载,用户一般不需要看到功能,所以脚本在下为好。尝试用异步加载脚本的属性:async

三.压缩html

为了保持代码的可读性,最好的方法是在代码中添加注释和使用缩进。

但是对于浏览器来说,这些都是不重要的。正因为如此,通过自动化工具压缩你的HTML是非常有用的。

通过移除多余的空白符、注释和一些与内容结构无关的的不需要的字符,能够节省一些字节。尝试用gzip压缩方式。

四.减少dom结点

用语义化的标签来代替万能的div。

五.《html写法对gzip压缩率的影响》

书写标签属性时,最好多个相同标签属性值顺序一致。可以使gzip压缩更快。

CSS

一.压缩css

通过自动化工具压缩css,同压缩html。重复性的代码学会提炼。

二.合并多个css

普遍通过cdn合并或公司的合并工具进行合并,有效减少http请求数量。

三.合理使用css表达式

不是所有人都能合理使用css表达式的。所以把功能都交给javascript。css我们要休息一下喽。

IMAGES

一.使用css sprite

将psd里面小的图层整合到一张图层里面,布局完成。布局要紧促。对于有些图片有毛边的,可以设置杂边的颜色。也可以将png-8设置成png-24(ie6滤镜处理)

二.用base64图片编码替代普通css sprite图片

使用前:

.img {
  background-image:url('image.png');
}

使用后:

.img {
  background-image:url('data:image/png;base64,iVBORw0KGgo');}

base64图片编码只针对于单独的图片,而不是css sprite图片,支持主流浏览器及ie8以上。可以减少http请求数量,但是对于没有gzip压缩的html,css来说,减少http请求得来的大文件是不可取的。 

三.优化图片 

图片格式要控制好,在图片质量ok的情况下,png,jpg,gif格式根据情况合理利用。一般css sprite用png格式,动画图片用gif格式,色彩鲜艳的广告图片用jpg.

图片大小要控制好,网站可以缓存图片。一般一张广告图片要在100k左右,如果图片实在太大,可以将一张图片切成几块,拼接而成。

某前端css网站声明,凡是必须用图片来布局的都是耍流氓。随着css3的流行,这句话将成为一句座右铭。

四.《Progressive JPEG 解析》

综述,连续的jpg格式对性能更好。

JAVASCRIPT

一.异步加载文件

varvst = document.createElement('script');
    vst.type ='text/javascript';
    vst.async =true;
    vst.src =srcIndex;
    vars = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(vst, s);

当一些第三方文件等下载成了问题,或是导致页面加载负重。我们就需要异步加载这些文件,async是个好的方式。

二.将循环的对象存储

使用前:

var str = "nanananana";
for (var n = 0; n < str.length; n++) {}

使用后:

 varstr ="nanananana",
strLgth = str.length;
for(varn = 0; n < strLgth ; n++) {}

循环对性能的消耗是很大的,将循环的对象存储,减少每次循环都要进行对象的计算。

三.最小化减少回流和重绘

使用前:

varcoored = document.getElementById("ctgHotelTab");
    document.getElementById("ctgHotelTab").style.top = coored.offsetTop + 35 +"px";

使用后:

varcoored = document.getElementById("ctgHotelTab"),
    offetTop = coored.offsetTop + 35;
    document.getElementById("ctgHotelTab").style.top = offetTop +"px";

当一个元素的布局不变,外观发生改变时,就会引起重绘。

当你设置style.top时,浏览器需要重新计算布局,我们每次请求offsetTop时,都会使浏览器重新计算布局,改变一个布局,就会导致回流。

四.压缩javascript

通过自动化工具压缩js。同html和css。

五.合并多个js文件

普遍通过cdn合并或公司的合并工具进行合并,有效减少http请求数量。

六.源生js和框架js相比,针对循环,for比each要好。

性能测试工具

我经常使用的是YSLOW。page speed也不错。都会给你一些性能上的建议。

总结

性能很重要,毋容置疑。我的只是工作上的分享,仅供参考。详见:http://browserdiet.com/zh/

一聚教程网 从零开始的html教程(6),超链接的使用和html5插入视频,零基础也能轻松学会html,希望大家喜欢

一、如何链接到其他网页?

超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。而在一个网页中用来超链接的对象,可以是一段文本或者是一个图片。当浏览者单击已经链接的文字或图片后,链接目标将显示在浏览器上,并且根据目标的类型来打开或运行。

html中插入<a>标签就可以添加超链接了,具体格式是这样的<a href="url">XXX</a>。其中href属性规定了规定了超链接链接的目标。开始标签与结束标签之间的文本就是超链接本身,网页中浏览时可以点击该文本链接到具体地址,鼠标移到这几个文字上面时,鼠标指针会变成伸出食指的手。

<a href="url">XXX</a>中间不一定是文字,插入一个<img>标签可以实现点击图片链接到其他网页的效果。

二、在新窗口中打开链接

同学们如果试着做了几个超链接并点击几次后一定会发现,新页面不是以我们平常上网时点击链接进入一个新的页面的方式打开的,而是直接在当前页面载入了新的页面,很不方便。给超链接的<a>标签添加一个target 属性,且设置为 "_blank"<a href="video.html" target="_blank">,点击的时候就会在新的页面打开链接了!

三、html5中插入视频

超链接我们已经会了,现在来做一下点击超链接进入视频播放页面吧。如今大部分网页都是靠flash来实现视频播放的,html5也提供了视频播放的标准方法<video>标签。<video src="movie.mp4" controls="controls">您的浏览器不支持播放此视频</video>,这里面src属性规定了video的路径(跟图片同理),controls属性提供添加播放、暂停和音量控件,标签中间的文本是当浏览器无法播放视频时显示的文字。

1.在一开始制作的页面上添加一个超链接,链接到一个新建的页面:

<div>

<a href="video.html" target="_blank">视频播放</a>

</div>

2.新的页面添加视频播放的<video>标签:

<video src="video.mp4" controls>您的浏览器不支持播放此视频</video>

大功告成!简易的视频播放页面就做出来了。这次学会了非常重要的超链接的知识以及html5新增的插入视频的功能,敬请期待下一篇教程。

附:Video有以下的属性:

autoplay    autoplay    如果出现该属性,则视频在就绪后马上播放

controls     controls    如果出现该属性,则向用户显示控件,比如播放按钮

height        pixels    设置视频播放器的高度

loop           loop    如果出现该属性,则当媒介文件完成播放后再次开始播放

preload      preload    如果出现该属性,则视频在页面加载时进行加载,并预备播放,如果使用 "autoplay",则忽略该属性

src              url    要播放的视频的 URL

width           pixels    设置视频播放器的宽度

小编分享的这篇文章给出了bootstrap如何实现自动轮播的实例代码,希望能帮助到大家

bootstrap图片自动轮播效果图:

代码实现:

<!DOCTYPE html>
<htmllang="zh-CN">
<head>
 <linkrel="stylesheet"href="bootstrap.min.css"/>
 <linkrel="stylesheet"href="bootstrap-theme.min.css"/>
 <scriptsrc="jquery.min.js"></script>
 <scriptsrc="bootstrap.min.js"></script>
 <style>
 #div1 {width:600px; height:500px}
 </style>
</head>
<body>
 <divid="div1">
 <divid="carousel-example-generic"class="carousel slide"data-ride="carousel">
  <!-- Indicators -->
  <olclass="carousel-indicators">
  <lidata-target="#carousel-example-generic"data-slide-to="0"class="active"></li>
  <lidata-target="#carousel-example-generic"data-slide-to="1"></li>
  <lidata-target="#carousel-example-generic"data-slide-to="2"></li>
  </ol>
 
  <!-- Wrapper for slides -->
  <divclass="carousel-inner"role="listbox">
  <divclass="item active">
   <imgsrc="airplane1.jpg">
  </div>
  <divclass="item">
   <imgsrc="airplane2.jpg">
  </div>
  <divclass="item">
   <imgsrc="airplane3.jpg">
  </div>
  </div>
 
  <!-- Controls -->
  <aclass="left carousel-control"href="#carousel-example-generic"role="button"data-slide="prev">
  <spanclass="glyphicon glyphicon-chevron-left"id="aaron1"></span>
  <spanclass="sr-only">Previous</span>
  </a>
  <aclass="right carousel-control"href="#carousel-example-generic"role="button"data-slide="next">
  <spanclass="glyphicon glyphicon-chevron-right"id="aaron2"></span>
  <spanclass="sr-only">Next</span>
  </a>
 </div>
 </div>
</body>
<html>

以上代码可以实现 div1 中的图片自动轮播,轮播时间默认5000ms。

许多同学想快速学习html或者学好html,这里小编给大家指导一下少走弯路,祝愿每个同学都学有所成!

  对于一个从零开始的普通网友,应当通过这三个步骤成为一个合格的网站制作和管理者吧。

  一、从手工编写最基本的代码起步:

  虽然目前制作网页的工具很多,但我们建议新手务必要从手工编写网页代码起步。一方面,这样可以使你更深刻地理解网页的工作原理,从而认识到制作网页与用Office软件编辑文档的本质区别;另一方面,在很多情况下,相比使用网页制作工具,直接修改网页代码将更为快捷,产生的网页文件容量也更小,结构更为清晰,便于后期维护。

  手工编写代码的最佳工具就是Windows系统自带的“记事本”软件,而所编写的代码,我们称之为“Html语言”。使用“记事本”软件,按Html语言所规定的格式书写代码,并在硬盘上将它以“htm”或“html”作为扩展名的文件保存下来,在其上双击鼠标,就可以通过浏览器打开它并查看网页的显示效果。整个过程非常方便,且不用安装额外的软件工具,非常适合没有基础的新手学习。

  Html语言本身内容比较多,为了让初学者的学习尽快见效,建议从以下几项内容入手:

  (1)网页的结构。

  包括:标记网页起始的标记,分隔网页头部的标记,分隔网页体部的标记,初学者可以在标记内随意键入一些文字察看网页的显示效果。

  (2)图片标记。学习了这一标记,就可以做出图文并茂的完整网页。同时,也可以使你深刻地理解到:在网页中文字和图片实际上是分成多个文件来存储的,与Word文档将图文存储在一个文件中是完全不同的,而这也往往是初学者最容易误解的地方。

  (3)超链接标记。学习了这一标记,就可以通过点击某一行文字,实现转向另一个网页。超链接是互联网世界的魅力所在,浩瀚无穷的信息都是通过无数的超链接联接在一起的。制作超链接,通常需要编写出多个网页文件,并在每个文件中写入不同的链接文字。这也将使你对网站文件的存储方式有更深入的了解。

  (4)制作表格的标记。表格是网页中非常重要的元素,除了以列表方式显示数据外,在网页中划分区域、布局文字图片等各种元素,都是通过表格来实现的。掌握了分析表格代码的能力,将会使你在网页的后期维护中如虎添翼。

  切实学会了这几样知识,就已开启了制作网页的大门。不管以后应用的技术有多复杂,也都是围绕着这几样技术来展开的。

  二、学习制作网页的辅助工具:

  学会了手工编写代码,已经可以做出有模有样的网页了,但是难以做出具有一定规模,布局较为复杂的页面。要实现这一目标,还必须借助网页制作辅助工具。

  Dreamweave是众多网页制作工具中出类拔萃的一员。然而这个软件功能强大,菜单、按钮繁多,初学者如果为了图省事,一上手就用这个工具来做网页,势必会一头雾水,摸不到方向。如果对网页代码有了比较深入的了解,先想好在代码中可以实现何种效果,再在Dreamweave软件中寻找相应的功能,就会容易得多,也更便于记忆。

  在Dreamweaver中,“布局表格”是非常有特色的一项功能,用户通过操控鼠标,在屏幕上划出一个个方块,就可以实现各种网页元素的排布。这也是制作格局复杂的网页的有力工具,需要重点掌握。

  三、向建立交互式和基于数据库的网站进军:

  以上两种方式,做出的还只是单方面展示信息的网页。要实现访问者和网站之间的真正交互,则必须要通过后台程序来实现。比如,用户在前台页面中输入一些信息,网站后台程序获取这些信息并进行甄别,根据不同的判断结果给用户展示不同的网页,从而实现对话式的信息互动。目前比较流行的后台编程语言有Asp语言、Php语言等,学习这些语言,需要具备一定Basic语言、C语言的基础。

  如果网站需要对外提供商品信息这样经常变动的数据、或是要保存用户所输入的信息,后台数据库是最有效和常用的方法。对于初学者来说,采用Asp语言+Access数据库的组合是不错的选择。Windows系统包含了支持这些工具的网站服务组件,你可以方便地把自己的电脑变成一个网页服务器,不需要额外安装其他的软件。如果你已联上网,则可以让你的亲友通过你的IP地址访问一下你的网站,让他们也来分享你的成功喜悦

[!--infotagslink--]

相关文章

  • 用js的document.write输出的广告无阻塞加载的方法

    一、广告代码分析很多第三方的广告系统都是使用document.write来加载广告,如下面的一个javascript的广告链接。复制代码 代码如下:<script type="text/javascript" src="http://gg.5173.com/adpolestar/5173/;ap=2EBE5...2014-06-07
  • jQuery页面加载初始化常用的三种方法

    当页面打开时我们需要执行一些操作,这个时候如果我们选择使用jquery的话,需要重写他的3中方法,自我感觉没什么区 别,看个人喜好了,第二种感觉比较简单明了: 第一种: 复制代码 代码如下: <script type="text/javas...2014-06-07
  • 解决IDEA插件市场Plugins无法加载的问题

    这篇文章主要介绍了解决IDEA插件市场Plugins无法加载的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-21
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • Mysql效率优化定位较低sql的两种方式

    关于mysql效率优化一般通过以下两种方式定位执行效率较低的sql语句。通过慢查询日志定位那些执行效率较低的 SQL 语句,用 --log-slow-queries[=file_name] 选项启动时, mysqld 会 写一个包含所有执行时间超过 long_quer...2015-11-08
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • MySQL针对Discuz论坛程序的基本优化教程

    过了这么久,discuz论坛的问题还是困扰着很多网友,其实从各论坛里看到的问题总结出来,很关键的一点都是因为没有将数据表引擎转成InnoDB导致的,discuz在并发稍微高一点的环境下就表现的非常糟糕,产生大量的锁等待,这时候如果...2015-11-24
  • 101个MySQL的配置和优化以及备份的经验提示

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限。这里是101条调节和优化 MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把...2013-09-11
  • Angular性能优化之第三方组件和懒加载技术

    这篇文章主要介绍了Angular性能优化之第三方组件和懒加载技术,对性能优化感兴趣的同学,可以参考下...2021-05-11
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • ThinkPHP+jquery实现“加载更多”功能代码

    本篇文章主要介绍了ThinkPHP+jquery实现“加载更多”功能代码,以实例代码讲诉了加载更多的代码实现,非常具有实用价值,需要的朋友可以参考下 ...2017-03-13
  • 解决vue动态路由异步加载import组件,加载不到module的问题

    这篇文章主要介绍了解决vue动态路由异步加载import组件,加载不到module的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • AngularJS 实现按需异步加载实例代码

    AngularJS 通过路由支持多视图应用, 可以根据路由动态加载所需的视图, 在 AngularJS 的文档中有详细的介绍, 网上也有不少教程, 就不用介绍了!随着视图的不断增加,js文件会越来越多,而 AngularJS 默认需要把全部的js都一次性...2015-10-21
  • C#程序优化-有效减少CPU占用率

    本文给大家介绍的是C#程序优化的小技巧,通过此方法可以有效的降低CPU的占用率,十分的简单实用,有需要的小伙伴可以参考下。...2020-06-25
  • vue3如何按需加载第三方组件库详解

    距离 Vue 3.0 正式版发布已经有一段时间了,关于vue3组件库相关的问题还是挺多人感兴趣的,这篇文章主要给大家介绍了关于vue3如何按需加载第三方组件库的相关资料,需要的朋友可以参考下...2021-06-02
  • 利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)

    这篇文章主要介绍了利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化),本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-24
  • 网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例

    网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10
  • 详解Vue开发网站seo优化方法

    这篇文章主要介绍了Vue开发网站seo优化方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • JavaScript提高网站性能优化的建议(二)

    这篇文章主要介绍了JavaScript提高网站性能优化的建议(二)的相关资料,需要的朋友可以参考下...2016-07-29
  • 用C++面向对象的方式动态加载so的方法

    下面小编就为大家带来一篇用C++面向对象的方式动态加载so的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25