改善前端优化的有用技巧

1、缓存JavaScript和CSS样式

尽可能少地向服务器发出请求。记得10年前,一个页面上要加载5-6个JS,但理想情况下,你应该有一个JS文件和一个CSS文件,这就足够了。
只要确保JavaScript的不同部分在不同页面上执行即可。此外,请记住有关缓存的信息:下载一次文件后,用户会将其保存到浏览器缓存中,并且下一次你登陆此网站时,浏览器将立即从缓存中加载,而不是从远程服务器加载静态信息。

2、压缩JavaScript,CSS样式和HTML代码

即使我们每个服务器仅发出一个请求,也不要忘记这个数据也很重要。压缩代码可使你最多减少40%到50%的代码量。对于移动设备尤其如此。有大量的在线服务可以进行缩小优化,例如minifycode.com。但是使用诸如grunt.js,gulp.js或webpack.js之类的前端构建工具要方便得多。

3、图片压缩优化

基本上,我们不需要在网站上上传10MP照片。它们不仅可以降低分辨率,而且还可以以最小的质量损失来压缩图像。通常,我们不需要超高图片质量的网站。另外,如果不需要透明度,也可以将图像从png转换为jpg。
像Photoshop这样的图形软件都可以提供帮助(它们甚至具有特殊的选项“为网络压缩”)和相同的构建工具,例如gulp-imagemin和image in-pngquant插件。

4、制作大合成图

小图标,按钮的背景,复选标记和箭头,这些很小的图片,但需要对服务器进行很多请求。要分别提供每个图标,请将其粘贴到图片中,合并制作为一张大图片,减少服务器的请求。

5、应用延迟加载—图像的延迟加载

延迟加载是指脚本也指样式,同时,也经常引用到图像中。具有十二个屏幕和巨大着陆页的图片,无论我们拥有多快的互联网,加载这些海量数据都是一个问题。
延迟加载的想法是仅在真正需要资源时才加载资源。对于图像,仅加载当前可见的那些图像。如果用户仅滚动登录页面的前几个屏幕,则许多图片将隐藏在网站的“下方”,因此不会加载。所以,我们的服务器将摆脱不必要的烦人请求,更重要的是,将节省流量和站点访问。

6、不要偷懒,要预览图像

有多少人无视这些简单的规则。你在网站上看到一个漂亮的画廊,上面载满了图像,然后想到“多么伟大的人”。然后,你会注意到滑块上的缩略图是相同的大图像,只是在CSS中有所减少。然后你会想,“这到底是怎么回事?”
创建缩略图的任务不能称为第一线。如果你必须自己做,我只能表示同情。通常,这是通过专门指派的人员来完成的,这些人员需要亲手完成这项不费力的工作,或者借助批处理图像处理工具来完成。或者,如果慈善事业对你而言并不陌生,那么就在后端。
在将图像上传到服务器或首次访问所需图像时,通常由CMS /框架插件对图像进行大小调整。无论如何,作为前端开发人员,你都应该了解确保快速加载站点,把内容呈现给你的客户。

7、提供来自不同域/子域的静态内容

如果你有一个小型项目,博客或网站,你将不会有任何收益。但是,如果你知道,你正在开发第二个Facebook,则应将许多静态信息和相同的照片散布在不同的子域或域中。事实是,浏览器对从一个(子)域下载资源的线程数量有所限制。因此,如果你有大量的内容,最好将其分散。

8、将JavaScript代码或文件放在页面末尾

在内容结束标签前,浏览器必须先下载内容,然后才下载JS。当然,如果你是单页应用程序,则此建议将无济于事。如果你正在使用SPA,那么一切都很好。

9、包含动态样式

渲染裸HTML后尝试加载样式。页面加载加速可能会忽略不计。但是你的HTML可能会有的可怕,以至于没有样式,用户会很快就从网站中逃脱。通常,请尝试并确定是否需要它。

10、摆脱不必要的DOM元素

DOM操作是浏览器中最难的部分之一。不要在两个浮动div足够的表上做。不要为了美而雕刻额外的跨度。除非javascript逻辑要求,否则不要为容器包装程序创建包装程序。一般而言,请保持简单并努力追求极简主义。

11、用JavaScript代替jQuery

我们不要使用jQuery来操纵dom。我们刚刚习惯了编写$(’#myDiv’)比document.getElementById(‘myDiv’)更方便。但是支持IE的时代已经过去,如果优化对你来说真的很关键,那么请切换到Native,使用DOM的工作速度将提高数十倍甚至数百倍。

12、不要害怕将ID放在DOM元素上,以便从JavaScript代码快速访问它们

请保留JS的ID,这是访问所需项目的最快方法。此外,你将很快不再对应用样式的优先顺序感到困惑,并且将永远知道:如果id放在此元素上,则javascript需要从中获取一些东西。如果该类已挂起,则需要CSS。

13、使用CSS动画代替JavaScript

有时用JS制作棘手的动画非常酷,但是你必须始终记住,这对浏览器来说是很大的负担。更不用说额外的js代码了。长期以来,CSS3一直备受推崇,可以随意使用过渡和关键帧。
当然,你应该考虑所需的浏览器对这些属性的支持。动画通常是装饰性的,互补的。如果用户的浏览器不支持CSS转换,那么他将看到静态图片。但是,如果必须实施动画,则值得用javascript制作它。

14、避免繁琐的DOM操作

你最喜欢的客户喜欢调整屏幕上的窗口大小观看时,改变位置,从显示器边缘跳出。不幸的是,领导们没有听到处理器上的旧散热器如何开始啸叫,也没有看到浏览器中的内存消耗。但是,所有的站点访问者都拥有配备Core i7和8 GB内存的MacBook。
当然,可以在不干扰DOM的情况下进行某些转换,而仅通过样式和媒体查询即可。但是通常,你必须以旧JS的形式重新连接。

15、AJAX请求并分析来自服务器的数据传输

你不能自己决定的另一点,是它与服务器的交互。
与你的后端同事讨论客户端和服务器之间的数据交换。协商数据格式和API。一起构建REST服务。毕竟,你是知道客户端上需要什么数据的人。
例如,如果你需要有关在线商店的购买者的一般信息,请从请求中删除所有带有名称,价格和折扣的订单上不必要的数据。在单独的请求中将其取出。你的请求越简单,越轻便,处理请求就越容易,服务器上的负载也就越少。

改善前端优化的有用技巧相关推荐

  1. 前端优化-改善滑动流畅度的几类方法

    前端优化-改善滑动流畅度的几类方法 很多时候,在我们写完前端页面以后,在谷歌模拟器上测试iOS和Android测试都没问题.堪称完美.当我们真机测试时,拿起安卓手机一测,哇塞完美十分流畅!然后兴高采烈 ...

  2. 前端性能优化的一些技巧(90% chatGpt生成)

    终于弄好了chatGpt的账号,赶紧来体验一波. 先来一波结论,这篇文章的主要内容来源,90%是用chatGpt生成的. 先上chatGpt的生成的结果: 作为一名懒惰的程序员,chatGpt会帮助我 ...

  3. 用 GDB 调试Linux程序及有用技巧

    用 GDB 调试Linux程序及有用技巧(转) armlinux   2008-06-19 10:48   阅读91   评论0 字号: 大大  中中  小小 GNU的调试器称为gdb,该程序是一个交 ...

  4. web前端优化10点总结

    web前端优化10点总结 tenfy    发表于2010年01月12日 11:41 阅读(5) 评论( 1) 分类: web前台开发 举报 实际上,我们通过前台web端的梳理和逻辑的优化(哪怕是一个 ...

  5. 55个用于搜索引擎优化的小技巧

    每个人都喜欢好用的技巧,对吗?这里有55个用于搜索引擎优化的小技巧,甚至你的老妈用起来都易如反掌.哦,不是我的老妈,但你明白我的意思.这意味着网页设计师和SEO新手中大部分人都能迅速上手,没有任何困难 ...

  6. 前端优化 - 收藏集 - 掘金

    如何提升页面渲染效率 - 前端 - 掘金 Web页面的性能 我们每天都会浏览很多的Web页面,使用很多基于Web的应用.这些站点看起来既不一样,用途也都各有不同,有在线视频,Social Media, ...

  7. Web前端优化最佳实践及工具集锦

    摘要:前端的性能对于Web应用的用户体验来说非常重要.不要以为你的Web应用的性能已经足够好了,其实还会有很多可以提升的地方.本文将介绍Google和雅虎关于前端优化的最佳实践以及工具,你可以逐一检验 ...

  8. 161026、更快速将你的页面展示给用户[前端优化篇]

    现在许多公司往往注重后端优化,而忽略了前端优化 想想如果辛苦优化了服务器,后台,排查了sql,却在最后页面加载展示的时候很慢,也得不偿失 其实,前后台优化都是相辅相成的,后台优化好了,响应请求速度快, ...

  9. Yahoo前端优化性能规则

    1.减少HTTP请求次数 据统计,有80%的最终用户响应时间是花在前端程序上,而其大部分时间则花在各种页面元素,如图像.样式表.脚本和Flash等的下载上,减少页面元素将会减少HTTP请求次数,这是快 ...

最新文章

  1. Apache Flink 零基础入门(十八)Flink Table APISQL
  2. Linux 下 新增Oracle10g 实例
  3. 幼儿园计算机课程名称,幼儿园课程建设30:计算机与幼儿园课程的整合(3)
  4. Python爬虫用到的一些浏览器代理标识
  5. 程序员年薪40万被国企同学怒怼:没啥贡献,工资这么高,凭什么?
  6. 全球与中国注塑磁体市场竞争策略分析及投资前景研究报告2021-2027年版
  7. EM算法及对GMM的参数估计(EM算法的R实现 vs R mclust包)
  8. 划分训练集、测试集,制作自己的数据集
  9. 牛顿下山法(Matlab实现)
  10. 剑指Offer全题解—Java版本
  11. Spring/SpringBoot系列之Spring中涉及的9种设计模式【七】
  12. android文件目录
  13. DELL PowerEdge 远程开机
  14. 奇数下标都是奇数或者偶数下标都是偶数(Java)
  15. springboot初始化项目慢,springboot创建项目慢
  16. ue5不能打包的打包方法
  17. 快递大叔喜做快递十余年
  18. ARM开发软件及实用工具介绍
  19. php使用fpm fcgi模式,为所有PHP模式安装Ioncube Loader(CLI,CGI,FCGI和FPM)在Debian Wheezy...
  20. 中国网络安全法对德国公司的影响

热门文章

  1. tableau实战系列(六)-小面积图表如何完整显示标签
  2. 字节跳动 ClickHouse 在实时场景中的应用和优化实践
  3. 强化学习(三)用动态规划(DP)求解
  4. Linux文件的复制、删除和移动命令
  5. pythonjam怎么运行_第二十一天 PYTHON学习
  6. Scrapy框架学习记录
  7. MNN通用端侧深度学习预测框架介绍
  8. 【机器学习PAI实践八】用机器学习算法评估学生考试成绩
  9. javascript中涉及到汉字的比较
  10. Android中Uri的使用