本帖最后由 就业高冷派 于 2018-6-20 20:41 编辑
公司名称:西安智慧创新信息科技有限公司 公司地址:西安雁塔区高新二路新世纪大厦8楼D17 公司官网:http://www.xazhcx.com
以下为技术面试环节部分问题整理: Q:讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 A: 1)域名解析 2)发起TCP的3次握手 3)建立TCP连接后发起http请求 4)服务器端响应http请求,浏览器得到html代码 5)浏览器解析html代码,并请求html代码中的资源 6)浏览器对页面进行渲染呈现给用户
Q:谈谈你对前端性能优化的理解 A: 1) 请求数量:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域 2) 请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体 3) 缓存利用:使用CDN,使用外部JavaScript和CSS,添加Expires头,减少DNS查找,配置ETag,使AjaX可缓存 4) 页面结构:将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出 5) 代码校验:避免CSS表达式,避免重定向
Q:前端 MVVM框架的意义
早期前端都是比较简单,基本以页面为工作单元,内容以浏览型为主,也偶尔有简单的表单操作,基本不太需要框架. 随着 AJAX 的出现,Web2.0的兴起,人们可以在页面上可以做比较复杂的事情了,然后前端框架才真正出现了。 如果是页面型产品,多数确实不太需要它,因为页面中的 JavaScript代码,处理交互的绝对远远超过处 理模型的,但是如果是应用软件类产品,这就太需要了。 长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型、业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织。 从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的 MV框架,这个状况会大有改观。之所以感受不到 MVVM框架的重要性,是因为Model部分代码较少,View的相对多一些。如果主要在操作View和Controller,那当然 jQuery 这类库比较好用了。
Q:请你谈谈Cookie的弊端 A: 1)每个特定的域名下最多生成的cookie个数有限制 2) IE和Opera 会清理近期最少使用的cookie,Firefox会随机清理cookie 3) cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节 4) 安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。
请说出三种减少页面加载时间的方法
1) 尽量减少页面中重复的HTTP请求数量
2) 服务器开启gzip压缩 3) css样式的定义放置在文件头部 4)Javascript脚本放在文件末尾 5) 压缩合并Javascript、CSS代码 6) 使用多域名负载网页内的多个文件、图片
Q:WEB应用从服务器主动推送Data到客户端有那些方式?
1) html5 websoket 2) WebSocket 通过 Flash 3) XHR长时间连接 4) XHR Multipart Streaming 5) 不可见的Iframe 6) <script>标签的长时间连接(可跨域)
Q:对前端界面工程师这个职位是怎么样理解的?
1) 前端是最贴近用户的程序员,前端的能力就是能让产品从 90分进化到 100 分,甚至更好 2) 参与项目,快速高质量完成实现效果图,精确到1px; 3) 与团队成员,UI设计,产品经理的沟通; 4) 做好的页面结构,页面重构和用户体验; 5) 处理hack,兼容、写出优美的代码格式; 6) 针对服务器的优化、拥抱最新前端技术。
Q:AMD和CMD 规范的区别?
AMD 提前执行依赖 - 尽早执行,requireJS 是它的实现 CMD 按需执行依赖 - 懒执行,seaJS 是它的实现
Q:网站重构的理解
重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。 1)使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的) 2) 对于移动平台的优化,针对于SEO进行优化 3) 减少代码间的耦合,让代码保持弹性 4) 压缩或合并JS、CSS、image等前端资源
Q:一次js请求一般情况下有哪些地方会有缓存处理? a. 浏览器端存储 b. 浏览器端文件缓存 c. HTTP缓存304 d. 服务器端文件类型缓存 e. 表现层&DOM缓存
|