获得徽章 15
- 8月4日 打卡day10
今日学习
小伙伴们日常开发中,都有用过 padding 和 margin 吧,margin 一般用做边距,让两个元素隔开一点距离,但是对于一些场景下,我们很难通过计算得到一个除的尽的值,比如 100px 我要让 3 个元素等分,且每个元素隔开 10px,这就很尴尬了。
没关系!我们可以用 gap 属性,gap 属性它适用于 Grid 布局、Flex 布局以及多列布局,并不一定只是 Grid 布局中可以使用。展开赞过评论1 - 8月3日 打卡day9
今日学习
TinyPNG使用智能的「有损压缩技术」来减少WEBP、JPEG和PNG文件的文件大小。通过选择性地减少图像中的「颜色数量」,使用更少的字节来存储数据。这种效果几乎是看不见的,但在文件大小上有非常大的差别。赞过评论1 - 8月2日 打卡day8
今日学习
采用 Go 语言开发,相比于 单线程 + JIT 性质的解释型语言 ,使用 Go 的优势在于 :
一方面可以充分利用多线程打包,并且线程之间共享内容,而 JS 如果使用多线程还需要有线程通信(postMessage)的开销;
另一方面直接编译成机器码,而不用像 Node 一样先将 JS 代码解析为字节码,然后转换为机器码,大大节省了程序运行时间。展开赞过评论1 - 8月1日 打卡day7
今日学习
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。展开赞过评论1 - 7月31日 打卡day6
今日学习
回顾下计算机网络知识,数据在网络上是以很小的帧的单位传输的,帧通过特定的称为网络驱动程序的程序进行成型,然后通过网卡发送到网线上,通过网线到达目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。在这个传输和接收的过程,就可以使用抓包工具(Sniffers)进行抓包,作为前端开发者,通常是抓取应用层的 HTTP/HTTPS 的包。展开赞过评论1 - 7月29日 打卡day5
今日学习
简单介绍
防抖:指定时间内 频繁触发一个事件,以最后一次触发为准
节流:指定时间内 频繁触发一个事件,只会触发一次
应用场景有很多比如:
防抖是: input搜索,用户在不断输入内容的时候,用防抖来减少请求的次数并且节约请求资源
节流:场景普遍就是按钮点击,一秒点击 10 下会发起 10 次请求,节流以后 1 秒点再多次,都只会触发一次展开赞过评论1 - 7月28日 打卡day4
今日学习
首先当我执行requestData函数,开始执行函数。遇到了异步操作不会阻塞后面代码执行的,因为js是单线程的,所以你写的return成功或者失败并没有返回给requestData,那我这个函数中,抛开异步操作,里面并没有返回值,所以值为undefined。展开赞过评论1 - 7月26日 打卡day3
今日学习
Monorepo 其实不是一个新的概念,在软件工程领域,它已经有着十多年的历史了。概念上很好理解,就是把多个项目放在一个仓库里面,相对立的是传统的 MultiRepo 模式,即每个项目对应一个单独的仓库来分散管理。赞过评论1 - 7月25日 打卡day2
今日学习
用户发送消息到飞书之后,飞书会将消息转发到我们自己的服务上。
但是这里会存在一个问题,就是当多个用户并发发起会话时,或者一个大群里很多人都在@我们的机器人时,我们需要记住每一个人的回话,在chatgpt查询到结果后,准确的回复这个人。
由于我司目前也是用于内部测试不想实现太复杂,所以我们采用的思路是:每一个用户的会话转发到我们的服务上时,先将会话内容保存到一个全局的ConcurrentLinkedQueue队列中,然后启动一个线程,不停的消费这个队列。
队列的泛型是一个提前构造好的对象,这个对象保存着当前消息的消息id,发送人,提问内容等。
每消费一个对象,就将对象的提问内容发送到chatgpt,获取响应结果以后,调用飞书提供的会话回复接口去回复用户。(如果并发量比较大,这里可以搞成异步的)。展开评论点赞 - 7月24日 打卡day1
今日学习
ChatGPT 告诉我,setup 函数在packages/runtime-core/src/component.ts 文件中。众所周知,runtime-core是 Vue3 的运行时核心代码。我们进去看一眼。
按照它所说的,我们找到了 setupComponent 和 createComponentInstance 函数,并没有找到 setupRenderEffect 函数,ChatGPT 的只知道 2021 年以前的知识,Vue3 代码经过了很多变动,不过没关系,这不影响太多。
ChatGPT 告诉我,setupComponent 函数是在createComponentInstance函数中执行的,createComponentInstance看名字是创建组件实例,看一下详细代码。展开评论点赞