前端零散知识点总结(二)

高手们在线问一下,前端零散知识点总结(二)
最新回答
楚楚可人

2026-10-24 16:57:49

前端零散知识点总结(二)1. HTTP与HTTPS的区别
  • 安全性:

    HTTP:不加密传输数据,存在数据被窃取或篡改的风险。

    HTTPS:通过SSL/TLS协议对数据进行加密传输,安全性更高。

  • 默认端口:

    HTTP:默认端口为80。

    HTTPS:默认端口为443。

  • 性能:

    HTTP:没有加密过程,性能相对较好。

    HTTPS:由于增加了加密过程,性能会略逊于HTTP,但现代浏览器和服务器优化已大大减少了这种差距。

  • 费用:

    HTTP:无需额外费用。

    HTTPS:需要SSL证书,通常需要一定的费用,但许多云服务提供商提供免费或低成本的SSL证书。

  • 工作过程:

    HTTPS:

    客户端访问服务器,请求建立SSL连接。

    服务端收到请求,将网站支持的证书信息(包含公钥)返回给客户端。

    客户端与服务器协商SSL连接的安全等级。

    客户端根据双方商定的安全等级,生成会话秘钥,并利用公钥将会话密钥加密传送给网站服务器。

    服务器利用私钥解密得出会话密钥,之后服务器利用会话密钥和客户端进行通信。

2. Web Worker与Service Worker的区别
  • 功能定位:

    Service Worker:是一个处理网络请求的后台服务,适用于离线情况下的后台同步或推送通知的处理方案。它不能直接与DOM交互,需要通过postMessage方法进行通信。

    Web Worker:用于模仿多线程,允许复杂的脚本在后台运行,从而不会阻止其他脚本的运行。它是保持UI响应的同时执行处理器密集型功能的解决方案,同样不能直接与DOM交互,需要通过postMessage方法通信。

  • 应用场景:

    Service Worker:主要用于处理后台任务,如推送通知、后台数据同步等。

    Web Worker:适用于执行计算密集型或耗时较长的任务,以避免阻塞主线程,提高页面响应性。

  • 生命周期:

    Service Worker:独立于网页存在,即使网页关闭,Service Worker也可能继续运行。

    Web Worker:通常与网页的生命周期相关联,网页关闭时,Web Worker也会停止运行。

3. Vue3为什么用Proxy API替代defineProperty
  • 检测属性添加和删除:

    Object.defineProperty:无法检测到对象属性的添加和删除,这限制了其响应式系统的灵活性。

    Proxy:可以拦截对象的set、get、deleteProperty等操作,从而能够检测到属性的添加、删除和修改,提供更全面的响应式支持。

  • 数组API监听:

    Object.defineProperty:需要对数组的每个方法进行重写,以实现对数组操作的监听,这既复杂又容易出错。

    Proxy:可以拦截数组的push、pop等操作方法,从而轻松实现对数组操作的监听。

  • 性能优化:

    Object.defineProperty:需要对每个属性进行遍历监听,如果有嵌套对象,还需要进行深层监听,这会导致性能问题。

    Proxy:通过拦截对象的操作,可以更加高效地实现响应式,避免了不必要的深层监听,提高了性能。

综上所述,Vue3选择使用Proxy API替代defineProperty,主要是为了解决Object.defineProperty在实现响应式时存在的局限性,如无法检测属性添加和删除、数组API监听复杂以及性能问题。Proxy API提供了更强大、更灵活的响应式支持,使得Vue3的响应式系统更加完善。