前端工程师面试题(性能优化)

1. 性能优化1

1.1 页面重构怎么操作?
网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。
也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。

对于传统的网站来说重构通常是:

表格(table)布局改为DIV+CSS
使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)
对于移动平台的优化
针对于SEO进行优化
深层次的网站重构应该考虑的方面

减少代码间的耦合
让代码保持弹性
严格按规范编写代码
设计可扩展的API
代替旧有的框架、语言(如VB)
增强用户体验
通常来说对于速度的优化也包含在重构中

压缩JS、CSS、image等前端资源(通常是由服务器来解决)
程序的性能优化(如数据读写)
采用CDN来加速资源加载
对于JS DOM的优化
HTTP服务器的文件缓存
1.2 什么叫优雅降级和渐进增强?
优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会针对旧版本的IE进行降级处理了,使之在旧式浏览器上以某种形式降级体验却不至于完全不能用。
如:border-shadow

渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新版本浏览器才支持的功能,向页面增加不影响基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。
如:默认使用flash上传,但如果浏览器支持 HTML5 的文件上传功能,则使用HTML5实现更好的体验;
1.3 前端性能优化的方法?

(1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器。

(2) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

(3) 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。

(4) 当需要设置的样式很多时设置className而不是直接操作style。

(5) 少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。

(6) 避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。

(7) 图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳。

(8) 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢。

对普通的网站有一个统一的思路,就是尽量向前端优化、减少数据库操作、减少磁盘IO。向前端优化指的是,在不影响功能和体验的情况下,能在浏览器执行的不要在服务端执行,能在缓存服务器上直接返回的不要到应用服务器,程序能直接取得的结果不要到外部取得,本机内能取得的数据不要到远程取,内存能取到的不要到磁盘取,缓存中有的不要去数据库查询。减少数据库操作指减少更新次数、缓存结果减少查询次数、将数据库执行的操作尽可能的让你的程序完成(例如join查询),减少磁盘IO指尽量不使用文件系统作为缓存、减少读写文件次数等。程序优化永远要优化慢的部分,换语言是无法“优化”的。

1.4 页面从输入 URL 到页面加载显示完成

注:这题胜在区分度高,知识点覆盖广,再不懂的人,也能答出几句, 而高手可以根据自己擅长的领域自由发挥,从URL规范、HTTP协议、DNS、CDN、数据库查询、 到浏览器流式解析、CSS规则构建、layout、paint、onload/domready、JS执行、JS API绑定等等;

详细版:

  1. 浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;
  2. 调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;
  3. 通过DNS解析获取网址的IP地址,设置 UA 等信息发出第二个GET请求;
  4. 进行HTTP协议会话,客户端发送报头(请求报头);
  5. 进入到web服务器上的 Web Server,如 Apache、Tomcat、Node.JS 等服务器;
  6. 进入部署好的后端应用,如 PHP、Java、JavaScript、Python 等,找到对应的请求处理;
  7. 处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304;
  8. 浏览器开始下载html文档(响应报头,状态码200),同时使用缓存;
  9. 文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;
  10. 页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。

简洁版:

  1. 浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
  2. 服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等);
  3. 浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);
  4. 载入解析到的资源文件,渲染页面,完成。
1.5 平时如何管理你的项目?

先期团队必须确定好全局样式(globe.css),编码模式(utf-8) 等;

编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);

标注样式编写人,各模块都及时标注(标注关键样式调用的地方);

页面进行标注(例如 页面 模块 开始和结束);

CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.css);

JS 分文件夹存放 命名以该JS功能为准的英文翻译。

图片采用整合的 images.png png8 格式文件使用 尽量整合在一起使用方便将来的管理


原文发布时间:2018-06-27

本文来源掘金如需转载请紧急联系作者

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 高级前端工程师面试题答案pdf是一份面试指南,涵盖了高级前端工程师常见的面试题和对应的答案。这份文档可帮助求职者更好地准备和应对前端工程师面试。 在高级前端工程师面试中,通常会涉及以下几个方面的问题和答案: 1.技术能力和经验:面试官可能会问求职者对于前端开发的技术栈和常用工具的熟悉程度,以及对于特定技术的实践经验。求职者可以根据自己的实际经验和学习情况,结合项目经历和个人技能,详细解答自己对于前端技术的了解和应用。 2.项目经验和解决方案:面试官可能会询问求职者在实际项目中遇到的挑战和解决方案。求职者可以选择一个具体的项目,介绍自己在其中遇到的问题,并详细说明自己是如何解决这些问题的,包括技术方案和团队协作等方面。 3.团队合作和沟通能力:高级前端工程师通常需要与设计师、产品经理和后端工程师等进行密切合作,因此面试官可能会询问求职者在团队中的角色和贡献,以及自己与其他岗位之间的沟通和协调能力。求职者可以列举具体的案例,说明自己在团队中的合作经验和有效沟通的能力。 4.面试题面试官会可能出一些具体的问题,涉及到前端的核心知识点,如HTML、CSS、JavaScript等。求职者需要根据题目的要求,做出清晰、准确的回答,并且能够展示出自己的思考过程和解决问题的能力。 总之,高级前端工程师面试题答案pdf是一份指导性的资料,帮助求职者更好地理解和准备面试。求职者应该根据自己的实际情况和经验,对文档中的问题进行仔细准备,并能够以清晰、有条理的方式进行回答。 ### 回答2: 高级前端工程师面试题答案pdf是一份包含了高级前端工程师面试题的答案的PDF文件。该文件通常由面试官根据候选人在面试中所回答的问题和表现整理而成。以下是一些可能包含在高级前端工程师面试题答案pdf中的内容: 1. 前端技术栈:一般会列出候选人熟悉的前端技术栈,包括HTML、CSS、JavaScript、React、Vue等。 2. 项目经验:候选人在过去的项目中的具体经验和工作职责。包括项目的规模、使用的技术、解决的问题等。 3. 前端框架和库的使用:候选人熟悉的前端框架和库,如React、Vue、Angular等,并列举过去项目中如何使用这些框架和库。 4. 前端性能优化:候选人在前端性能优化方面的实践经验,包括代码优化、资源优化、图片压缩、懒加载等技巧。 5. 数据可视化:候选人在数据可视化方面的经验,如使用D3.js等工具进行数据图表的绘制和展示。 6. 前端安全:候选人对前端安全的了解和实践经验,如防止XSS攻击、CSRF攻击等。 7. 前端工程化:候选人在前端工程化方面的实践经验,如构建工具的使用、模块化开发、持续集成等。 8. 前端团队协作:候选人在团队协作方面的经验,如与设计师、后端工程师的沟通与配合,参与项目管理和代码审查等。 高级前端工程师面试题答案pdf是候选人展示自己专业知识和实践经验的重要材料,面试官可以通过阅读该文件评估候选人的技术能力和项目经验,从而做出招聘决策。 ### 回答3: 高级前端工程师面试题答案pdf是一份包含高级前端工程师面试题的答案的pdf文档。这份文档可能包含了许多常见的高级前端工程师面试题以及它们的详细答案。 高级前端工程师面试题通常涵盖广泛的主题,包括但不限于HTML、CSS、JavaScript、前端框架、性能优化、移动端开发等。这些问题的答案可以提供对面试官展示自己技能和知识水平的机会。 在回答高级前端工程师面试题时,关键是要清晰而且详细地回答问题。答案应该经过仔细思考和正确的技术知识支持,以展现自己的专业水平。 此外,在准备面试时,应该对常见的高级前端工程师面试题进行彻底的了解,并在实际开发中多加练习和应用。这样可以更好地理解和回答面试中的问题,并展示出自己的实际经验和解决问题的能力。 总而言之,高级前端工程师面试题答案pdf可以帮助候选人更好地准备面试,展示自己的技能与知识水平,并增加通过面试的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值