Table des matières
高性能网站建设总结
规则1——减少 HTTP请求
图片地图
CSS Sprites (雪碧图/精灵图)
内联图片
data:url模式
什么是内联图片
内联图片语法
合并脚本和样式表
规则二——使用内容分发网络 CDN
规则三——添加Expires头
Maison interface Web tutoriel HTML 高性能网站建设指南总结_html/css_WEB-ITnose

高性能网站建设指南总结_html/css_WEB-ITnose

Jun 21, 2016 am 08:50 AM

高性能网站建设总结

规则1——减少 HTTP请求

只有10%到20%的最终用户响应时间花在接收请求的HTML文档上面。剩下80%到90%的 时间花在为HTML文档所引用的所有组件(图片,脚本,flash,样式表等)进行的HTTP请求上。因此改善响应的最简单途径就是减少组件数量,由此减少HTTP请求的数量。

图片地图

使用map标签进行坐标定位,减少图片数量。导航栏中使用了多个图片时候可以使用。缺点很多:手工方式很难完成坐标定位,且容易出错。除了矩形之外也难以定义其他形状,通过DHTML定义的图片IE中还无法工作。不建议使用。

CSS Sprites (雪碧图/精灵图)

通过把多个图片合并到一个图片,然后利用background-position进行定位,比使用分离图片快50%。图片地图中的图片必须是连续的,而CSS Sprites则没有这个限制。也有人认为合并后的图片比分离的图片总和还要大,合并后的图片包含附加的空白区域。实际是变小的,雪碧图降低了图片自身的开销。(颜色表,格式信息,等等)如果页面中背景,按钮,导航栏,链接需要使用很多图片,可以使用。优点——干净的标签,很少的图片和很短的响应时间。

缺点:后期修改麻烦,难以维护,牵一发动全身,没有之前改一个图片就好了容易

雪碧图制作方法:

  1. 百度搜索CSS Sprites 可找到相应制作软件!(软件下载地址)[ http://www.baidu.com]

  2. gulp等自动化工具,自动合成

  3. ps自己制作

内联图片

使用 data:URL的模式在WEB页面中包含图片,但无需任何额外的HTTP请求。我们都熟悉http:模式的URL。其他类似模式包括 ftp:,file:和maito:

data:url模式

在1995年提出来:允许将小数据块内联为立即数,数据就在url自身中。

什么是内联图片

内联图片是一种新型的图像格式(在我看来是这样不知道理解对否),官方称为: data URI scheme。通常我们存储的图片在网页中需要写:

  <img  src="/static/imghw/default1.png"  data-src="http://blog.xmaoseo.com/images/xmaoseo.jpg"  class="lazy"/ alt="高性能网站建设指南总结_html/css_WEB-ITnose" >
Copier après la connexion

而内联图片写法会是

<img  src="/static/imghw/default1.png"  data-src="data:image/png;base64,iVAGRw0KGDCFGNSUhEUgACBBQAVGADCAIATYJ7ljmRGGAAGElEVQQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPACCCTElFTEVBQmGA"  class="lazy"/ alt="高性能网站建设指南总结_html/css_WEB-ITnose" >
Copier après la connexion

内联图片语法

  <img  src="data:image/png;base64,iVBOR.... alt="高性能网站建设指南总结_html/css_WEB-ITnose" >
Copier après la connexion
  1. data - 取得数据的协定名称

  2. image/png - 数据类型名称

  3. base64 - 数据的编码方法

  4. iUANR.... - 编码后的数据

  5. : , ; - data URI scheme 指定的分隔符号

这种图片格式无需额外的HTTP请求是不错,但是还有一个重要的一点,浏览器不会缓存这种图像。 data url节省了HTTP请求,但是如果这个图像在网页多个地方显示会加大网页的内容,延长下载时间。还有一点 IE8以下都不支持这种图像,所以还是IE6的用户就比较悲催了。并且超过 100kb图像使用 base64编码也会增大图片大小。导致网页整体下载量增加。 (BASE64编码图片导致网站浏览缓慢崩溃 http://blog.xmaoseo.com/125.html)但是很多聪明人做法是把背景平铺类图片作为内联图片使用,这样效果很不错。也减少了HTTP请求加快了网站速度。那么你可能会问到如何获取图片的base64编码呢。网络上有很多免费的base编码和解码工具,但是有个最简单方法就是我们写一个PHP文件。使用base64_encode()进行编码:比如:

echo base64_encode(file_get_contents('211-11.JPG'));
Copier après la connexion

如何解决网页下载延迟问题。最简单一个方法就是用写成CSS里的背景去调用CLASS 类名就可以了。比如咱们用上面的例子:

.blogxmao{background:url(data:image/png;base64,iVAGRw0KGDCFGNSUhEUgACBBQAVGADCAIATYJ7ljmRGGAAGElEVQQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPACCCTElFTEVBQmGA")}
Copier après la connexion
<div>..内容...</div><div>..内容...</div>
Copier après la connexion

合并脚本和样式表

根据 模块化原则, 我们应该将代码放到多个小文件中,但是这样会降低性能,因为每个文件都会导致一个额外的http请求。理想情况,一个页面不应该使用多余一个的脚本和样式表。世界前十网站脚本和样式表一般不超过 2个。

使用模块化工具,比如 seajs,requirejs进行优化。不然随着文件的增多,手动合并将会很麻烦。

规则二——使用内容分发网络 CDN

内容分发网络(conten delivery network)是一组分布在多个不同地理位置的 Web服务器。可以使用CDN服务提供商。

CDN优点:

缩短相应时间,备份扩展存储能力和进行缓存,缓和 WEB流量峰值压力(获取天气,娱乐体育新闻等等)

CDN缺点:

你的响应时间会受到其他网站——甚至是竞争对手的流量的影响。无法控制组件服务器所带来的特殊麻烦。比如, 修改HHTP表头必须由服务提供商来完成。

如果CDN服务性能下降了,你的工作也会受到影响。当然你可以使用两个CDN服务提供商。

CDN用于发布静态图片( 将所有静态组件转移到CDN),图片,脚本样式表,Flash,静态文件更易存储,有较少的依赖性。

规则三——添加Expires头

Web页面包含大量组件,首次访问时间并不是唯一需要考虑的,页面的初访者会进行很多HTTP请求,但是可以使用一个长久的Expires头,使得这些组件被 缓存,

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est le but du & lt; Progress & gt; élément? Quel est le but du & lt; Progress & gt; élément? Mar 21, 2025 pm 12:34 PM

L'article traite du HTML & lt; Progress & GT; élément, son but, son style et ses différences par rapport au & lt; mètre & gt; élément. L'objectif principal est de l'utiliser & lt; Progress & gt; pour l'achèvement des tâches et & lt; mètre & gt; pour stati

Quel est le but du & lt; datalist & gt; élément? Quel est le but du & lt; datalist & gt; élément? Mar 21, 2025 pm 12:33 PM

L'article traite du HTML & lt; Datalist & GT; élément, qui améliore les formulaires en fournissant des suggestions de saisie semi-automatique, en améliorant l'expérience utilisateur et en réduisant les erreurs. COMMANDE COMPRES: 159

Quelles sont les meilleures pratiques pour la compatibilité entre les navigateurs dans HTML5? Quelles sont les meilleures pratiques pour la compatibilité entre les navigateurs dans HTML5? Mar 17, 2025 pm 12:20 PM

L'article examine les meilleures pratiques pour assurer la compatibilité des navigateurs de HTML5, en se concentrant sur la détection des fonctionnalités, l'amélioration progressive et les méthodes de test.

Quel est le but du & lt; mètre & gt; élément? Quel est le but du & lt; mètre & gt; élément? Mar 21, 2025 pm 12:35 PM

L'article traite du HTML & lt; mètre & gt; élément, utilisé pour afficher des valeurs scalaires ou fractionnaires dans une plage, et ses applications courantes dans le développement Web. Il différencie & lt; mètre & gt; De & lt; Progress & gt; et ex

Comment utiliser les attributs de validation du formulaire HTML5 pour valider l'entrée utilisateur? Comment utiliser les attributs de validation du formulaire HTML5 pour valider l'entrée utilisateur? Mar 17, 2025 pm 12:27 PM

L'article discute de l'utilisation des attributs de validation de formulaire HTML5 comme les limites requises, motifs, min, max et longueurs pour valider la saisie de l'utilisateur directement dans le navigateur.

Quelle est la balise Meta de la fenêtre? Pourquoi est-ce important pour une conception réactive? Quelle est la balise Meta de la fenêtre? Pourquoi est-ce important pour une conception réactive? Mar 20, 2025 pm 05:56 PM

L'article traite de la balise Meta de la fenêtre, essentielle pour la conception Web réactive sur les appareils mobiles. Il explique comment une utilisation appropriée garantit une mise à l'échelle optimale du contenu et une interaction utilisateur, tandis que la mauvaise utilisation peut entraîner des problèmes de conception et d'accessibilité.

Quel est le but du & lt; iframe & gt; étiqueter? Quelles sont les considérations de sécurité lorsque vous l'utilisez? Quel est le but du & lt; iframe & gt; étiqueter? Quelles sont les considérations de sécurité lorsque vous l'utilisez? Mar 20, 2025 pm 06:05 PM

L'article traite du & lt; iframe & gt; L'objectif de Tag dans l'intégration du contenu externe dans les pages Web, ses utilisations courantes, ses risques de sécurité et ses alternatives telles que les balises d'objet et les API.

Gitee Pages STATIQUE Le déploiement du site Web a échoué: comment dépanner et résoudre les erreurs de fichier unique 404? Gitee Pages STATIQUE Le déploiement du site Web a échoué: comment dépanner et résoudre les erreurs de fichier unique 404? Apr 04, 2025 pm 11:54 PM

GiteEpages STATIQUE Le déploiement du site Web a échoué: 404 Dépannage des erreurs et résolution lors de l'utilisation de Gitee ...

See all articles