网络前端面试题总结
HTML + CSS 理论知识
1,讲讲输入完网址按下回车,到看到网页这个过程中发生了什么
一个。域名解析
湾 发起TCP的3次握手
C。建立TCP连接后发起HTTP请求
d。服务器端响应HTTP请求,浏览器得到的html代码
即 浏览器解析HTML代码,并请求HTML代码中的资源
F。浏览器对页面进行渲染呈现给用户
2,谈谈你对前端性能优化的理解
一个。请求数量:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域
湾 请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将图标做成字体
C。缓存利用:使用CDN,使用外部JavaScript和CSS,添加Expires头,减少DNS查找,配置ETag,使AjaX可缓存
d。页面结构:将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出
即 代码校验:避免CSS表达式,避免重定向
3 ,前端MV *框架的意义
早期前端都是比较简单,基本以页面为工作单元,内容以浏览型为主,也偶尔有简单的表单操作,基本不太需要框架。
随着AJAX的出现,Web2.0的兴起,人们可以在页面上可以做比较复杂的事情了,然后前端框架才真正出现了。
如果是页面型产品,多数确实不太需要它,因为页面中的JavaScript代码,处理交互的绝对远远超过处理模型的,但是如果是应用软件类产品,这就太需要了。
长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型,业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织。
从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的MV框架,这个状况会大有改观。
之所以感受不到MV *框架的重要性,是因为模型部分代码较少,查看的相对多一些。如果主要在操作View和Controller,那当然jQuery这类库比较好用了。
4,请简述盒模型
IE6盒子模型与W3C盒子模型。
文档中的每个元素被描绘为矩形盒子。盒子有四个边界:外边距边界边缘,边框边界边界,内边距边界填充与内容边界内容。
CSS3中有个盒子大小属性可以控制盒子的计算方式,
content-box: padding和 border不被包含在定义的 width和 height之内。对象的实际宽度等于设置的 width值和 border, padding之和。(W3C盒子模型)
border-box: padding和 border被包含在定义的 width和 height之内。对象的实际宽度就等于设置的宽度值。(IE6盒子模型)
5 ,请你谈谈Cookie的弊端
一个。每个特定的域名下最多生成的cookie的个数有限制
湾 IE和Opera会清理近期最少使用的cookie,Firefox会随机清理cookie
C。饼干的最大大约为4096字节,为了兼容性,一般不能超过4095字节
d。安全性问题。如果饼干被人拦截了,那人就可以取得所有的会话信息。
如图6所示,浏览器本地存储
在HTML5中提供了sessionStorage和localStorage。
sessionStorage的用于本地存储一个会话(会话)中的数据,这些数据只有在同一个会话中,是会话级别的存储。
localStorage的用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
7,web storage和cookie的区别
一个。饼干的大小是受限的
湾 每次你请求一个新的页面的时候的Cookie都会被发送过去,这样无形中浪费了带宽
C。饼干还需要指定作用域,不可以跨域调用
d。Web Storage拥有setItem,getItem等方法,cookie需要前端开发者自己封装setCookie,getCookie
即 Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在,而Web Storage仅仅是为了在本地“存储”数据而生
F。IE7,IE6中的UserData通过简单的代码封装可以统一到所有的浏览器都支持web存储
8 ,线程与进程的区别
一个。一个程序至少有一个进程,一个进程至少有一个线程
湾 线程的划分尺度小于进程,使得多线程程序的并发性高
C。进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
d。每个独立的线程有一个程序运行的入口,顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
即 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配
9 ,请说出三种减少页面加载时间的方法
一个。尽量减少页面中重复的HTTP请求数量
湾 服务器开启的gzip压缩
C。CSS样式的定义放置在文件头部
d。JavaScript的脚本放在文件末尾
即 压缩合并的Javascript,CSS代码
F。使用多域名负载网页内的多个文件,图片
10 ,你都使用哪些工具来测试代码的性能?
JSPerf,Dromaeo
11 ,你遇到过比较难的技术问题是?你是如何解决的?
12 ,常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
1 3 ,列举IE与其他浏览器不一样的特性?
一个。IE的排版引擎是Trident (又称为MSHTML)
湾 三叉戟内核曾经几乎与W3C标准脱节(2005年)
C。Trident内核的大量Bug等安全性问题没有得到及时解决
d。JS方面,有很多独立的方法,例如绑定事件的attachEvent,创建事件的createEventObject等
即 CSS方面,也有自己独有的处理方式,例如设置透明,低版本IE中使用滤镜的方式
14 ,什么叫优雅降级和渐进增强?
渐进增强 渐进 增强:
针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果,交互等改进和追加功能达到更好的用户体验。
优雅 降级优雅 降级:
一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
区别:
一个。优雅降级是从复杂的现状开始,并试图减少用户体验的供给
湾 渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要
C。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带
15 ,WEB应用从服务器主动推送数据到客户端有那些方式?
一个。html5 websoket
b 。的WebSocket 通过 闪存
C。XHR长时间连接
d。XHR Multipart Streaming
即 不可见的的iFrame
F。<SCRIPT>标签的长时间连接(可跨域)
16 ,对前端界面工程师这个职位是怎么样理解的?
一个。前端是最贴近用户的程序员,前端的能力就是能让产品从90分进化到100分,甚至更好
湾 参与项目,快速高质量完成实现效果图,精确到1像素;
C。与团队成员,UI设计,产品经理的沟通;
d。做好的页面结构,页面重构和用户体验;
即 处理黑客,兼容,写出优美的代码格式;
F。针对服务器的优化,拥抱最新前端技术。
17 ,平时如何管理你的项目?
一个。先期团队必须确定好全局样式(globe.css),编码模式(utf-8)等;
湾 编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);
C。标注样式编写人,各模块都及时标注(标注关键样式调用的地方);
d。页面进行标注(例如页面模块开始和结束);
即 CSS跟HTML分文件夹并行存放,命名都得统一(例如style.css);
F。JS分文文夹存放命名以该JS功能为准的英文翻译。
G。图片采用整合的images.png png8格式文件使用尽量整合在一起使用方便将来的管理
18 ,说说最近最流行的一些东西吧?常去哪些网站?
CSDN,SegmentFault,php.net,MDN,CSS参考手册,iconfont,
强调,github上,引导,W3Shool,W3Cplus,caniuse
19 ,请解释一下JavaScript的同源策略
同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议。
指一段脚本只能读取来自同一来源的窗口和文档的属性。
20 ,AMD和CMD规范的区别?
AMD 提前执行依赖 - 尽早执行,requireJS是它的实现
CMD 按需执行依赖 - 懒执行,seaJS是它的实现
21 ,网站重构的理解
重构:在不改变外部行为的前提下,简化结构,添加可读性,而在网站前端保持一致的行为。
一个。使网站前端兼容于现代浏览器(针对于不合规范的CSS,如对IE6有效的)
湾 对于移动平台的优化,针对于搜索引擎进行优化
C。减少代码间的耦合,让代码保持弹性
d。压缩或合并JS,CSS,图像等前端资源
22 ,浏览器的内核分别是什么?
IE浏览器的内核Trident,Mozilla的Gecko,Chrome的Blink(WebKit的分支),Opera内核原为Presto,现为Blink;
23 ,请介绍下缓存控制
每个资源都可以通过 Cache-Control HTTP 头来定义自己的缓存策略
缓存控制 指令控制谁在什么条件下可以缓存响应以及可以缓存多久
Cache-Control 头在HTTP / 1.1规范中定义,取代了之前用来定义响应缓存策略的头(例如Expires)。
24 ,前端页面有哪三层构成,分别是什么?作用是什么?
一个。结构层:由HTML或XHTML之类的标记语言负责创建,仅负责语义的表达。解决了页面“内容是什么”的问题。
湾 表示层:由CSS负责创建,解决了页面“如何显示内容”的问题。
C。行为层:由脚本负责解决了页面上“内容应该如何对事件作出反应”的问题。
25 ,知道的网页制作会用到的图片格式有哪些?
png-8,png-24,jpeg,gif,svg
Webp:谷歌(谷歌)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间.Facebook Ebay等知名网站已经开始测试并使用的WebP格式。
Apng:全称是“动画便携式网络图形”,是PNG的位图动画扩展,可以实现png格式的动态图片效果。04年诞生,但一直得不到各大浏览器厂商的支持,直到日前得到iOS safari 8的支持,有望代替GIF成为下一代动态图标准。
26 ,一次js请求一般情况下有哪些地方会有缓存处理?
一个。浏览器端存储
湾 浏览器端文件缓存
C。HTTP缓存304
d。服务器端文件类型缓存
即 表现层和DOM缓存
27 ,一个页面上有大量的图片(加大很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。
一个。图片懒加载,滚动到相应位置才加载图片。
湾 图片预加载,如果为幻灯片,相册等,将当前展示图片的前一张和后一张优先下载。
C。使用CSSsprite,SVGsprite,Iconfont,Base64等技术,如果图片为css图片的话。
d。如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。
28 ,谈谈以前端角度出发做好SEO需要考虑什么?
一个。了解搜索引擎如何抓取网页和如何索引网页
湾 元标签优化
C。关键词分析
d。付费给搜索引擎
即 链接交换和链接广泛度(链接流行度)
F。合理的标签使用
29 ,<img>标签上标题属性与alt属性的区别是什么?
ALT属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的。且长度必须少于100个英文字符或者用户必须保证替换文字尽可能的短。
这包括那些使用本来就不支持图像显示或者图像显示被关闭的浏览器的用户,视觉障碍的用户和使用屏幕阅读器的用户等。
称号属性为设置该属性的元素提供建议性的信息。使用标题属性提供非本质的额外信息。
30 ,分别写出以下几个HTML标签:文字加粗,下标,居中,字体
加粗:<B>,<强>
下标:<子>
居中:<中心>
字体:<FONT>,<BASEFONT>,参考“HTML标签列表”
31 ,请写出至少5个html5新增的标签,并说明其语义和应用场景
部分:定义文档中的一个章节
nav:定义只包含导航链接的章节
header:定义页面或章节的头部。它经常包含logo,页面标题和导航性的目录。
footer:定义页面或章节的尾部。它经常包含版权信息,法律信息链接和反馈建议用的地址。
在旁边:如果被删除,剩下的内容仍然很合理。
32 ,请说说你对标签语义化的理解?
一个。去掉或者丢失样式的时候能够让页面呈现出清晰的结构
湾 有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
C。方便其他设备解析(如屏幕阅读器,盲人阅读器,移动设备)以意义的方式来渲染网页;
d。便于团队开发和维护,语义化更具可读性,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
33 ,Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
<!DOCTYPE >声明位于文档中的最前面,处于<html>标签之前。告知浏览器以何种模式来渲染文档。
严格模式的排版和JS运作模式是,以该浏览器支持的最高标准运行。
在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
34 ,你知道多少种Doctype文档类型?
标签可声明三种DTD类型,分别表示严格版本,过渡版本以及基于框架的HTML文档。
HTML 4.01规定了三种文档类型:Strict,Transitional 以及 Frameset。
XHTML 1.0规定了三种XML文档类型:严格,过渡 以及 框架集。
Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,
怪异(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。
35 ,HTML与XHTML--二者有什么区别
一个。XHTML元素必须被正确地嵌套。
湾 XHTML元素必须被关闭。
C。标签名必须用小写字母。
d。XHTML文档必须拥有根元素。
36 ,html5有哪些新特性,移除了那些元素?
一个。HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加。
湾 拖拽释放(拖放)API
C。语义化更好的内容标签(标题,导航,页脚,旁边,文章,部分)
d。音频,视频API(音频,视频)
即 画布(Canvas)API
F。地理(Geolocation)API
G。本地离线存储 localStorage的 长期存储数据,浏览器关闭后数据不丢失
H。的sessionStorage 的数据在页面会话结束时会被清除
一世。表单控件,日历,日期,时间,电子邮件,网址,搜索
学家 新的技术webworker,websocket等
移除的元素:
一个。纯表现的元素:basefont,big,center,s ,strike,tt,u;
湾 对可用性产生负面影响的元素:frame,frameset,noframes ;
37 ,iframe的优缺点?
优点:
一个。解决加载缓慢的第三方内容如图标和广告等的加载问题
湾 iframe的无刷新文件上传
C。iframe的跨域通信
缺点:
一个。IFRAME会阻塞主页面的的Onload事件
湾 无法被一些搜索引擎索引到
C。页面会增加服务器的HTTP请求
d。会产生很多页面,不容易管理。
38 ,Quirks模式是什么?它和标准模式有什么区别?
在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时.IE6以前的页面大家都不会去写DTD ,所以IE6就假定如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。
区别:总体会有布局,样式解析和脚本执行三个方面的区别。
一个。盒模型:在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks模式下,IE的宽度和高度还包含了padding和border。
湾 设置行内元素的高宽:在标准模式下,给<跨度>等行内元素设置wdith和高度都不会生效,而在怪癖模式下,则会生效。
C。设置百分比的高度:在标准模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的用
d。设置水平居中:使用margin:0 auto在standard模式下可以使元素水平居中,但在quirks模式下却会失效。
39 ,请阐述表的缺点
一个。太深的嵌套,比如表> tr> td> h3,会导致搜索引擎读取困难,而且,最直接的损失就是大大增加了冗余代码量。
湾 灵活性差,比如要将TR设置边框等属性,是不行的,得通过TD
C。代码臃肿,当在表中套用表的时候,阅读代码会显得异常混乱
d。混乱的colspan与rowspan,用来布局时,频繁使用他们会造成整个文档顺序混乱。
即 表需要多次计算才能确定好其在渲染树中节点的属性,通常要花3倍于同等元素的时间。
F。不够语义
40 ,简述一下src与href的区别
src用于替换当前元素; href用于在当前文档和引用资源之间确立联系。
SRC是源的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置
href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接
41 ,html5有哪些新特性,移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?
1,新特性:
a.HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加
。拖拽释放(拖放)API
c。语义化更好的内容标签(header,nav,footer,aside,article,section)
d。音频,视频API(音频,视频)
e。画布(Canvas)API
f 。地理(Geolocation)API
g。本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失;
h.sessionStorage的数据在浏览器关闭后自动删除
i。表单控件,日历,日期,时间,电子邮件,网址,搜索
j。新的技术webworker,websocket,Geolocation
2,移除元素:
纯表现的元素:basefont,big,center,font,s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;
3,h5新标签兼容:
IE8 / IE7 / IE6支持通过document.createElement方法产生的标签,
可以利用这一特性让这些浏览器支持HTML5新标签,
当然最好的方式是直接使用成熟的框架,使用最多的是html5shim框架
<! - [如果是IE 9]>
<script> src =“http://html5shim.googlecode.com/svn/trunk/html5.js”</ script>
<![endif] - >
如何区分:
DOCTYPE声明\新增的结构元素\功能元素
42 ,CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?CSS3新增伪类有那些?
CSS选择符:
1.id选择器(#myid)
2.类选择器(.myclassname)
3.标签选择器(div,h1,p)
4.相邻选择器(h1 + p)
5.子选择器(ul> li)
6.后代选择器(li a)
7.通配符选择器(*)
8.属性选择器(a [rel =“external”])
9.类类选择器(a:hover,li:nth-child)
可以继承的属性:
可继承的样式:font-size font-family color,UL LI DL DD DT;
不可继承的样式:border padding margin width height;
优先级:
!important> id> class>标签
重要比内联优先级高,但内联比id要高
CSS3新增伪类举例:
p:first-of-type选择属于其父元素的首个<p>元素的每个<p>元素。
p:last-of-type选择属于其父元素的最后<p>元素的每个<p>元素。
p:only-of-type选择属于其父元素唯一的<p>元素的每个<p>元素。
p:only-child选择属于其父元素的唯一子元素的每个<p>元素。
p:nth-child(2)选择属于其父元素的第二个子元素的每个<p>元素。
:enabled:disabled控制表单控件的禁用状态。
:选中单选框或复选框被选中。
43 ,CSS3有哪些新特性?
1,CSS3实现圆角(border-radius),阴影(box-shadow),
2,对文字加特效(text-shadow,),线性渐变(gradient),旋转(transform)
3,变换:旋转(9度)刻度(0.85,0.90)平移(0px,-30px)倾斜(-9deg,0deg); //旋转,缩放,定位,倾斜
4,增加了更多的CSS选择器多背景rgba
5,在CSS3中唯一引入的伪元素是:: selection。
6,媒体查询,多栏布局
7,边界图像
44 ,解释盒模型宽高值得计算方式,边界塌陷,负值作用,box-sizing概念?
1.盒模型:IE 678下(不添加DOCTYPE)使用即盒模型,宽度=边框+填充+内容宽度; CHROM,IE9 +,(添加DOCTYPE)使用标准盒模型,宽度=内容宽度。
2. 箱上浆:为了解决标准黑子和IE盒子的不同,CSS3增加了盒模型属性box-sizing,content-box(默认),border-box让元素维持IE传统盒子模型,继承继承父盒子模型;
3.边界塌陷:块元素的顶部与底部外边距有时会合并(塌陷)为单个外边距(合并后最大的外边距),这样的现象称之为外边距塌陷。4.
负值作用:负缘会改变浮动元素的显示位置,即使我的元素写在DOM的后面,我也能让它显示在最前面。
45 ,BFC(Block Formatting Context)是什么?应用?
1. BFC就是'块级格式上下文'的格式,创建了BFC的元素就是一个独立的盒子,不过只有BLock-level box可以参与创建BFC,它规定了内部的Bloc-level Box如何布局,并且与这个独立盒子里的布局不受外部影响,当然它也不会影响到外面的元素
.2。应用场景:
1。解决边缘叠加的问题
2。用于布局(overflow:hidden),BFC不会与浮动盒子叠加.3。
用于清除 浮动,计算BFC高度。
46 ,如何实现浏览器内多个标签页之间的通信?
调用localstorge,饼干等本地存储方式
47 ,简要说一下CSS的元素分类
块级元素:div,p,h1,form,ul,li;
行内元素:span,a,label,input,img,strong,em;
48 ,解释下浮动和它的工作原理?清除浮动的方法
浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。
1.使用空标签清除浮动。
这种方法是在所有浮动标签后面添加一个空标签定义css clear:both。弊端就是增加了无意义标签。
2.使用后伪对象清除浮动
该方法只适用于非IE浏览器。具体写法可参照以下几例。一,该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;
#parent:后{
内容:”。”;
高度:0;
visibility:hidden的;
显示:块;
明确:两者;
}
3.设置溢出为隐藏或者自动
4.浮动外部元素
49 ,CSS隐藏元素的几种方法(至少说出三种)
不透明度:元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互;
能见度:与opacity唯一不同的是它不会响应任何用户交互。此外,元素在读屏软件中也会被隐藏;
显示:display设为无任何对该元素直接打用户交互操作都不可能生效。此外,读屏软件也不会读到元素的内容。这种方式产生的效果就像元素完全不存在;
职位:不会影响布局,能让元素保持可以操作;
Clip-path:clip-path属性还没有在IE或者Edge下被完全支持。如果要在你的clip-path中使用外部的SVG文件,浏览器支持度还要低;
50 ,请描述一下cookies,sessionStorage和localStorage的区别?
相同点:都会在浏览器端保存,有大小和同源限制。
不同点:
1,cookie会随请求发送到服务器,作为会话表示,服务器可修改cookie.web storage不会随请求大宋到服务器。
2,cookie有路径的概念,子路径可以访问父路径的cookie,父路径不可以访问子路径的
cookie.3,有效期:cookie在设置的有效期内有效,默认为浏览器关闭消失.sessionStorage在会话窗口关闭后失效,localStorage长期有效,需主动删除
.4,sessionStorage不能共享,localStorage在同源文档之间可以共享,cookie在同源且符合路规规则的文档之间可以共享
.5,localStorage的修改会触发其他文档的更新事件
.6,cookie有安全属性要求HTTPS传输
.7,浏览器不能保存超过300个cookie,单个服务器不能超过20个,每个cookie不能超过4k.webStorage可以支持5M的存储。
51 ,什么是语义化的HTML?
直观的认识标签对于搜索引擎的抓取有好处,用正确的标签做正确的事情!
html语义化就是让页面的内容结构化,便于对浏览器,搜索引擎解析;
在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的。搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO。使用
阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
52 ,link和@import有什么区别?
link属于XHTML标签,除了加载CSS外,还能用于定义RSS,定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
页面被加载的时,链接会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
import是CSS2.1提出的,只在IE5以上才能被识别,而链接是XHTML标签,无兼容问题;
53 ,常见的浏览器内核有哪些?
Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML] Gecko内核:Netscape6及以上版本,FF,MozillaSuite / SeaMonkey等
Presto内核:Opera7及以上。[Opera内核原为:Presto,现为:Blink;] Webkit内核:Safari,Chrome等。[Chrome的:Blink(WebKit的分支)]
54 ,如何解决跨域问题
JSONP,CORS,通过修改document.domain来跨子域,使用window.name来进行跨域,HTML5中新引进的window.postMessage方法,在服务器上设置代理页面
1,JSONP
原理是:动态插入脚本标签,通过脚本标签引入一个JS文件,这个JS文件载入成功后会执行我们在URL参数中指定的函数,并且会把我们需要的JSON数据作为参数传入。
由于同源策略的限制,XmlHttpRequest的只允许请求当前源(域名,协议,端口)的资源,为了实现跨域请求,可以通过脚本标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数,从而解决了跨域的数据请求。
优点是兼容性好,简单易用,支持浏览器与服务器双向通信缺点。是只支持GET请求。
2,CORS
服务器端对于CORS的支持,主要就是通过设置访问控制允许来源来进行的。如果浏览器检测到相应的设置,就可以允许阿贾克斯进行跨域的访问。
3,通过修改document.domain的来跨子域
将子域和主域的document.domain的设为同一个主域前提条件:!这两个域名必须属于同一个基础域名而且所用的协议,端口都要一致,否则无法利用document.domain的进行跨域
主域相同的使用document.domain的
如图4所示,使用window.name来进行跨域
窗口对象有个名称属性,该属性有个特征:即在一个窗口(窗口)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的
55 ,前端性能优化的方式
1,减少DOM操作
2,部署前,图片压缩,代码压缩
3,优化JS代码结构,减少冗余代码
4,减少HTTP请求,合理设置HTTP缓存
5,使用内容分发CDN加速
6,静态资源缓存
7,图片延迟加载
56 ,对前端工程化的理解
1,开发规范
2,模块化开发
3,组件化开发
4,开发仓库
5,性能优化
6,项目部署
7,开发流程
8中,开发工具