摘要 :本篇分享了10道面试题——Web性能优化方案、JS严格模式、五道算法题、自定义JS事件系统、输入URL到浏览器渲染的全过程、>
1、 说下行内元素和块级元素的区别行内块元素的兼容性使用(IE8 以下)
答:行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。兼容性:display:inline-block;display:inline;zoom:1。
2、box-sizing常用的属性有哪些分别有什么作用
答:box-sizing: content-box|border-box|inherit。content-box:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。
border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
3、Doctype作用标准模式与兼容模式各有什么区别
答:告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
4、html5有哪些新特性如何处理HTML5新标签的浏览器兼容问题如何区分 HTML 和 HTML5
答:HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
(1)绘画 canvas;
(2)用于媒介回放的 video 和 audio 元素;
(3)本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
(4)sessionStorage 的数据在浏览器关闭后自动删除;
(5)语意化更好的内容元素,比如 article、footer、header、nav、section;
(6)表单控件,calendar、date、time、email、url、search;
(7)新的技术webworker, websocket, Geolocation;
IE8/IE7/IE6支持通过documentcreateElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。当然也可以直接使用成熟的框架、比如html5shim。
以上就是环球青藤小编关于web前端面试题的相关分享,希望对大家有所帮助,想要了解更多相关内容,请及时关注本平台并进行查看!
进程是CPU资源分配的最小单位,线程是CPU调度的最小单位
其中GUI渲染线程和JS引擎是无法同时工作的
默认情况下, TCP 连接会启用延迟传送算法 (Nagle 算法), 在数据发送之前缓存他们 如果短时间有多个数据发送, 会缓冲到一起作一次发送 (缓冲大小见 socketbufferSize), 这样可以减少 IO 消耗提高性能
如果是传输文件的话, 那么根本不用处理粘包的问题, 来一个包拼一个包就好了 但是如果是多条消息, 或者是别的用途的数据那么就需要处理粘包
可以参见网上流传比较广的一个例子, 连续调用两次 send 分别发送两段数据 data1 和 data2, 在接收端有以下几种常见的情况:
A 先接收到 data1, 然后接收到 data2
B 先接收到 data1 的部分数据, 然后接收到 data1 余下的部分以及 data2 的全部
C 先接收到了 data1 的全部数据和 data2 的部分数据, 然后接收到了 data2 的余下的数据
D 一次性接收到了 data1 和 data2 的全部数据
其中的 BCD 就是我们常见的粘包的情况 而对于处理粘包的问题, 常见的解决方案有:
多次发送之前间隔一个等待时间
关闭 Nagle 算法
进行封包/拆包
通过滑动窗口协议(连续ARQ协议)实现,保证了分组无差错、有序接收、流量控制。接收方返回的ACK中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。
当发送者收到了一个窗口为0的应答,发送者便停止发送,等待接收者的下一个应答。如果这个窗口不为0的应答在传输过程中丢失,发送者一直等待,接收者以为发送者收到该应答,等待接收新数据,这样双方就相互等待,从而产生死锁
TCP使用了持续计时器。每当发送者收到一个0窗口的应答后就启动该计时器。计时器到时便主动发送报文询问接收者的窗口大小。若接收者仍然返回0窗口,则重置该计时器继续等待;若窗口不为0,则标识应答报文丢失了,此时重置发送窗口开始发送,这样就避免了死锁的产生
拥塞控制是作用于网络的,防止网络负载过大,常用的方法:1慢启动、拥塞避免 2快重传、快恢复。流量控制是作用于接收者的,控制发送者的发送速度使接收者来得及接收,防止分组丢失
发送方维持一个叫做拥塞窗口CWnd的状态变量,控制着传输速度,TCP开始发送报文时CWnd=1。一个传输轮次所经历的时间就是往返时间RTT,每经过一个RTT并且按时收到确认,就将拥塞窗口CWnd加倍。还有一个叫慢启动门限ssthresh的状态变量,当CWnd<ssthresh时,使用慢启动,当CWnd>=ssthresh改用拥塞避免算法
每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1而不是加倍。无论在慢启动阶段还是拥塞避免阶段,只要发送方没有按时收到确认,就把慢启动门限设置为出现拥塞时的拥塞窗口cwnd的一半(但不小于2)。然后把拥塞窗口cwnd重置为1,执行慢启动算法
接收方收到一个失序的报文段后就立刻发出重复确认而不是等到自己发送数据时捎带确认。只要发送方一连收到三个重复确认就立即重传对方尚未收到的报文段,而不是等待重传计时器到期
当发送方连续收到三个重复确认时,把慢启动门限ssthresh减半,但是并不执行慢开始算法,而是将拥塞窗口cwnd设置为ssthresh减半后的值,直接执行拥塞避免算法。快重传配合快恢复的TCP Reno版本是目前使用最广的版本。
帧:>
以上就是关于十道前端面试题第【03】篇全部的内容,包括:十道前端面试题第【03】篇、Web前端5道面试题、常见的web前端面试题及答案分享等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)