No.1前端语言串讲 | 青训营

112 阅读4分钟

短短五十分钟的一节课涉及到较大的知识量,所以我挑几个自己感兴趣的点来写一些。

事件循环(面试题)

由于JS的单线程制,所以出现了事件循环,即处理事情的先后。 该图引自课件,在这个动图中可以看出完成一个宏任务即全局Script,然后完成所有微任务,才进行另外一个宏任务,这里是浏览器的事件循环,但事实上Node也有,并且会更加复杂。详情参考这篇文章image.png

HTML标签

这个图第一次见,覆盖了所有的HTML标签。 image.png

HTML5存储

用于账号授权的使用最多的就是Cookies了(但是它用于攻击的地方也很多,比如可以通过一个中转VPS实现多设备登录等功能),但是它只有4kb,其余还有IndexedDB,local storage,session storage。其中主要描述一下IndexedDB和session storage,主要是没有了解过。

IndexedDB

IndexedDB是一种在Web浏览器中使用的客户端存储技术,用于在浏览器中保存大量结构化数据。它允许Web应用程序在用户的本地浏览器中创建、读取、更新和删除数据,而无需依赖于传统的远程服务器。

主要特点和用途包括:

客户端存储: IndexedDB允许Web应用程序在用户的浏览器中存储数据。这种本地存储方式可以提供更快的访问速度和更好的离线体验,因为数据存储在用户的设备上。 键值对存储: 数据在IndexedDB中以键值对的形式存储,类似于JavaScript的对象。每个数据项都有一个关联的唯一键,可以通过这个键来访问和操作数据。 支持索引: IndexedDB支持创建索引,使得对数据进行检索更加高效。可以根据特定字段创建索引,从而提高数据的查询速度。 事务处理: 数据的读取和写入是通过事务来进行的。事务确保了数据的完整性和一致性,同时防止对数据的冲突访问。 异步操作: IndexedDB的API设计为异步的,这意味着数据的访问和操作通常是通过回调函数或Promise来处理。 适用于大量数据: IndexedDB适用于处理大量结构化数据,比如离线应用、缓存数据、本地数据库等。

session storage

Session Storage(会话存储)是Web浏览器中的客户端存储技术之一,用于在用户会话期间临时存储数据。与 IndexedDB 不同,Session Storage 用于存储会话期间的数据,一旦用户关闭浏览器标签或窗口,存储在 Session Storage 中的数据就会被清除。因此,Session Storage 主要用于在单个会话期间保存临时信息,当用户离开网站或关闭浏览器后,这些数据就会自动清除。

Session Storage 提供了一个简单的键值对存储方式,类似于 IndexedDB,它也是通过 JavaScript 来访问和操作的。 image.png

image.png

Web Socket

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工(full-duplex)通讯的协议。它适用的场景主要来源于即时通讯。 它从短轮询(主要通过Ajax实现),Ajax长轮询,基于Stream的问询,到最后实现了Web Socket。参考文章全双工通信的 WebSocket

这里的时候提到了一个词“全双工”,我来解释一下。

单工(simplex)
比如“英语六级广播”就是典型的【单工】。“六级广播电台”可以发信号给“耳机”,但“耳机”【不能】发信号给“英语六级广播”。

半双工(half-duplex)
比如一条铁路轨道,可以走两个方向,但是对于每一次选择机会,只能选择一次。

全双工(full-duplex)
可以无限制的互相传播,比如光纤就是典型的全双工。 其实可以说的点还有很多,比如我比较好奇SVG为什么没有Canvas适合做游戏,明明是矢量。什么是交互范式,为了细水长流,咱们还是来日方长吧。

限于作者水平,以上不保证完全正确,请各位理性阅读。