![4d6452fe0f9fb8bb886b347faecb9a7c.png](https://i-blog.csdnimg.cn/blog_migrate/a845ac3b888b8050c15f0069b2819017.jpeg)
Web前端面试题
Web前端面试题:一个tcp链接能发几个http请求?
解析:如果是 HTTP 1.0 版本协议,一般情况下,不支持长连接,因此在每次请求发送完毕之后,TCP 连接即会断开,因此一个 TCP 发送一个 HTTP 请求,但是有一种情况可以将一条 TCP 连接保持在活跃状态,那就是通过 Connection 和 Keep-Alive 首部,在请求头带上 Connection: Keep-Alive,并且可以通过 Keep-Alive 通用首部中指定的,用逗号分隔的选项调节 keep-alive 的行为,如果客户端和服务端都支持,那么其实也可以发送多条,不过此方式也有限制。
而如果是 HTTP 1.1 版本协议,支持了长连接,因此只要 TCP 连接不断开,便可以一直发送 HTTP 请求,持续不断,没有上限; 同样,如果是 HTTP 2.0 版本协议,支持多用复用,一个 TCP 连接是可以并发多个 HTTP 请求的,同样也是支持长连接,因此只要不断开 TCP 的连接,HTTP 请求数也是可以没有上限地持续发送。
Web前端面试题:小程序和H5什么区别?
解析:渲染方式与 H5 不同,小程序一般是通过 Native 原生渲染的,但是小程序同时也支持 web 渲染,如果使用 web 渲染的方式,我们需要初始化一个WebView 组件,然后在 WebView 中加载 H5 页面;
所以当我们开发一个小程序时,通常会使用 hybrid 的方式,即会根据具体情况选择部分功能用小程序原生的代码来开发,部分功能通过 WebView 加载 H5 页面来实现。Native 与 Web 渲染混合使用,以实现项目的最优解;
这里值得注意的是,小程序下,native 方式通常情况下性能要优于 web 方式。小程序特有的双线程设计。 H5 下我们所有资源通常都会打到一个 bundle.js 文件里(不考虑分包加载),而小程序编译后的结果会有两个bundle,index.js封装的是小程序项目的 view 层,以及 index.worker.js 封装的是项目的业务逻辑,在运行时,会有两条线程来分别处理这两个bundle,一个是主渲染线程,它负责加载并渲染index.js 里的内容,另外一个是 Service Worker线 程,它负责执行 index.worker.js 里封装的业务逻辑,这里面会有很多对底层api调用。
Web前端面试题:移动端白屏解决方案
解析:白屏的基本原因可以归结为网速和静态资源
css文件加载需要时间,在加载过程中页面空白
【解决方案】可以考虑css代码前置或内联
首屏没有实际的数据内容,等待异步加载数据,再渲染页面导致白屏
【解决方案】首屏直接同步渲染html,后续的滚屏等操作再异步请求数据渲染html
首屏内联js执行,会阻塞页面渲染
【解决方案】尽量不要在首屏html代码中内联js脚本
【其他解决方案】
在服务器端使用模版引擎渲染所有页面
减少文件加载体积,压缩html、js
本地存储静态文件
以上就是酷仔今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后酷仔每日均会提供Python及Web相关的习题。