优化页面加载速度的方法

本贴最后更新于 3400 天前,其中的信息可能已经东海扬尘

      昨天去YY(欢聚时代)面试的时候,第一面的那位面试官问了我超多问题,而且广度和深度都是我这段时间面试以来的之最,互联网公司果然变态得没有让我失望。其中的一个问题他问我有什么办法是优化页面加载速度,我在HSBC的这两年WEB方面的那点知识都喂了狗了。我想了一会,居然只能想到了三点,第一点是缩小图片,第二点是使用浏览器缓存,第三点是使用内容分发网络(CDN)。 他点了点头,问我除了这些方法外还有哪些?我说暂时想不出来了,他就接着问其他问题了。回到家后,我上网大概补习了一下优化页面加载速度的方法。网上有很多文章都做了很好的总结。归纳了一下,有以下几点:

1. 优化图像

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

2. 去掉不必要的插件

    安装的每个插件都需要服务器处理,从而增加页面加载时间。所以禁用和删除不必要的插件。

3.减少DNS查询(DNS Lookups)

    DNS查询需要花费很长的时间来返回一个主机名的IP地址,而浏览器在查询结束前不会进行任何操作。

4. 最小化重定向

    重定向增加了额外的HTTP请求,因此也增加了页面加载的时间。

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

    服务器处理大流量是很困难的,这最终会导致页面加载速度变慢,而使用CDN就可以解决这一问题,提升速度。CDN是位于全球不同地方的高性能网络服务,复制你网站的静态资源,并以最有效的方式为访客服务。

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

   把CSS文件在页面顶部引入可以禁止逐步渲染,节省浏览器加载和重绘页面元素的资源。 JavaScript是用于功能和验证,把JS文件放在页面底部可以避免代码执行前的等待时间,从而提升页面加载速度。

7. 利用浏览器缓存

  浏览器缓存是允许访客的浏览器缓存你网站页面副本的一个功能,这有助于访客再次访问时,直接从缓存中读取内用而不必重新加载,这节省了向服务器发送HTTP请求的时间。

8. 使用CSS Sprites整合图像

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

9. 压缩CSS和JavaScript

   压缩是通过移除不必要的字符(如TAB,空格,回车,代码注释等),以帮助减少其大小和页面的后续加载时间的过程。

10. 启用GZIP压缩

   在服务器上压缩网站的页面是提升网站访问速度的一个非常有效方法,你可以用GZIP压缩做到这一点。Gzip是一个减少发送到访客的HTML文件,JS

和CSS体积的工具。压缩的文件减少了HTTP响应时间。据Yahoo报道,这大概可以减少70%的下载时间。而目前90%的通过浏览器的流量都支持Gzip压缩。因此,这是一个提高网站性能有效的方法。

 

  • Web
    119 引用 • 433 回帖 • 8 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Excel
    31 引用 • 28 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖
  • OneDrive
    2 引用 • 3 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    142 引用 • 209 回帖 • 1 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖 • 2 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 263 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 376 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 4 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 29 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 545 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 560 关注
  • danl
    160 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 733 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 622 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 66 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    54 引用 • 40 回帖 • 1 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 85 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 122 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 72 关注
  • 笔记

    好记性不如烂笔头。

    311 引用 • 796 回帖
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖