热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

当面试官问你怎样举行机能优化时,你该这么回复(一)

背景在开发好页面后,怎样让页面更快更好的运转,是辨别一个顺序猿技术水平和视野的一个重要目标。所以口试时,口试官总会问你一个题目,怎样举行机能优化呢?假如你这时候是思想一片空白,或是

背景

在开发好页面后,怎样让页面更快更好的运转,是辨别一个顺序猿技术水平和视野的一个重要目标。所以口试时,口试官总会问你一个题目,怎样举行机能优化呢?

假如你这时候是思想一片空白,或是像之前的我一样,靠死记硬背或是之前的阅历,答一下紧缩代码,打包代码,雪碧图,cdn,事宜代办,这说明你对机能优化照样缺少一个团体,体系的控制,对机能优化还只是处于听说过一个要领就加上去的阶段。如许也就无从去更好的优化机能。

近来一个礼拜经由猖獗的口试和查询材料,我总算积累了一些履历和思索,在这个雇用的黄金时候,分享给人人,愿望人人能够有一点收成。假如有收成,迎接关注和star一下博客,github

机能优化是什么

从前端的角度来讲,机能优化能够分为两个方向。从用户角度来看,一个是页面加载的很快,另一个是页面运用起来很流通。因而,对机能优化的探究,我们能够分为页面加载时候跟页面运转效力两个方一直举行研究

从浏览器打开到页面衬着完成,花费了若干时候

是的,这个题目有点熟习,口试官比较常问的是从浏览器打开到页面衬着完成,发生了什么事情。这个题目网上许多回复,我也不就反复的细说了。重要的历程是:

浏览器剖析->查询缓存->dns查询->竖立链接->服务器处置惩罚请求->服务器发送相应->客户端收到页面->剖析HTML->构建衬着树->最先显现内容(白屏时候)->首屏内容加载完成(首屏时候)->用户可交互(DOMContentLoaded)->加载完成(load)

很显然,假如我们要举行加载时候的优化,我们须要从这里的每个步骤都去思索,去总结,而防备东凑一点,西凑一点。

页面加载时候监控

有一句话说得好,If You Can’t Measure It, You Can’t Manage It。在对这些环节举行优化之前,我们须要晓得怎样监控这些环节花费了若干时候。

起首引荐一个PerformanceTiming,能够获取到许多页面加载相干的数据。
比较经常使用的有

DNS剖析时候: domainLookupEnd - domainLookupStart
TCP竖立衔接时候: connectEnd - connectStart
白屏时候: responseStart - navigationStart
dom衬着完成时候: domContentLoadedEventEnd - navigationStart
页面onload时候: loadEventEnd - navigationStart

假如不运用该API,能够以服务器衬着返回的时候,或是SPA路由跳转脱离的时候为出发点,domContentLoaded,load等事宜为完毕点举行纪录。或是直接上google analytics。要领许多,就不细说了。

服务器部份优化要点

后端部份能够对缓存,dns查询时候,链接时候,处置惩罚请求时候,相应时候等举行优化。

缓存就不细说了。

dns查询时候能够运用httpdns或是dns预加载,域名收敛等手腕优化。

竖立衔接的重点是长衔接和链接复用,keep-alive,long-polling,http-straming,websocket或是本身写过别的协定,更好的是直接上http2。为了优化链接的环节,前端这里还须要对资本运用cdn,雪碧图,代码兼并等手腕。

服务器处置惩罚请求这里能够优化的点也不少,值得注意的就是挪动端接见PC端页面须要跳转到挪动端页面时,要再服务器端运用302跳转,不要在前端举行跳转。另有就是启用hsts,请求浏览器在以后的接见运用https,削减无谓的http跳转https,同时还能够防备ssl剥离进击,提拔安全性。

服务器发送相应环节,能够运用Transfer-Encoding=chunked,屡次返回相应,具体操作查询bigpipe。另有就是减小COOKIE的体积等等。

前端部份优化要点

前端部份能够对白屏时候,首屏事宜,可交换时候,加载完成时候举行优化。

-未完,待续-

博客文章链接web机能优化(一),github,迎接star和follow,感谢!

有时候的同砚也能够看下我的文章大厂前端口试考什么? ,应当也有协助


推荐阅读
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
author-avatar
mobiledu2502910203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有