自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

flying meng的菜鸟居

求知若渴,虚心若愚

  • 博客(284)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 「新组件√」微信小程序图片拖拽排序探索

图片上传组件是一个组件库目前来看必不可少的功能了。笔者近日给自己开源的toy工具库也添加了这一功能。相比原生和大部分组件库来说,它不仅支持长按提示删除,还能够支持图片的拖拽排序,很是nice!(也是为了毕设时身边同学能够更快上手小程序,更加将中心侧重于逻辑和设计😜)GitHub地址:https://github.com/1314mxc/yunUI#img,欢迎使用、查看和star!小程序专栏地址(所有的组件设计也都在里面):小程序的浪潮·初探本文我将继续介绍组件的设计思路:首先来看效果对于

2022-03-02 18:52:02 6664 3

原创 css和图片主题色

这个想法是来源于「性能优化」中的骨架屏:在图片居多的站点中,这将是非常nice的体验 —— 图片加载通常是比较让人难受的,好的骨架中一般占位图就是低像素的图片,即大体配色和变化是和实际内容一致的。有时候比如图片不固定的,那可以使用算法获取图片的主体颜色(至少得是同色系的吧),使用纯色块占位。再进一步想到,在一些“轻松”的场景下,我们可以让背景色/页面主题色跟随轮播图改变。至于效果嘛…你们可以想一下网易云音乐滑动切歌时的背景效果。因为是不固定图片,所以我想到了四种方法:tensorflow.js

2022-02-18 09:30:00 7235 8

原创 小谈picture、响应式和用户体验

HTML5提出的<picture>标签非常实用,在新时期用户体验大方向上可以结合css以及其它HTML元素达到意想不到的效果。picture往往和<source>元素(可以多个)、<img>元素(最多一个)一同使用。渲染的时候,浏览器优先使用<source>元素,<img>元素兜底。结合近两年W3C年度报告来看,前端(尤其是css)开始往用户体验方向突破。一方面目前已经很难有大方向的创新,另一方面有Google这个“急先锋”存在,已经势不可

2022-01-29 23:00:29 2753

原创 小小小tip:避免滚动条显隐对页面其他元素的影响

点这里直接到下面看解决方案自古以来,滚动条都是用户体验大难关,也在不断进化。一者滚动条样式在浏览器间表现不一致,从而有人提出“顶部阅读进度”方案;二者在window下,滚动条本身是占位的!这就导致了天生考虑响应式的现代页面中元素会受到影响从而“跳动”。经常有下面的场景的发生:“加载更多”页面懒加载模板页面跳转/路由跳转共同点都是:从不足一屏到超出一屏。淘宝网首页使用CSS把页面尺寸布局骨架搭好,再在里面吐数据。但即使是这样,他们还是做了overflow-x:hidden;。一方面是为.

2022-01-21 14:45:00 3420

原创 『可组合的Vue』别样的“小组件”设计

最近在设计笔者所在组自己的组件库。从设计上看,一个组件库是否“成功”取决于前期的设计 —— 我决定用上ITCSS模型。为这个组件的团队维护、扩展打下坚实的基础。但这还不够,组件库最重要的组件往往是非大型库开发中最容易被忽视的。为此,我将组件从使用场景上分为两种类型:大组件:也叫“场景组件”。功能完善,自成一片天地。取之即用,通过传参在内部做不同处理 —— 或渲染不同UI、或返回不同值。最重要的是:不会侵入页面逻辑。也就是说,无论谁在什么场景下调用,都是相同的方式。拿到值以后这个组件在当前操作流中就算完

2022-01-12 17:04:30 3703

原创 三探【文字溢出省略】:纯css实现“任意行数”截断处理

笔者之前有过对此功能的两次探究:https://blog.csdn.net/qq_43624878/article/details/110124299 这篇文章主要描述了文本溢出省略功能的实现,以及用js大致模拟了其原理和如何用js动态实现“溢出省略”;后来的 https://blog.csdn.net/qq_43624878/article/details/120993013 这篇文章又进一步从实际场景研究了不同情况下的溢出对用户体验的影响;本文将结合之前的文章用css代替js实现动态“多行溢出.

2022-01-04 16:46:11 3247 2

原创 小tips:如何摆脱浏览器下12px的限制

目前Chrome浏览器依然没有放开12px的限制,但Chrome仍然是使用人数最多的浏览器。在笔者开发某个项目时遇到一个问题:实际需要11px的字体大小但是在Chrome中是实现不了的。关于字体,一开始想到的就是rem等非px单位。但是rem只是为了响应式适配,并不能突破这一限制。em、rem等单位只是为了不同分辨率下展示效果提出的换算单位,常见的库px2rem也只是利用了js将px转为rem。包括微信小程序提出的rpx单位也是一样!这条路走不通,就只剩下一个方法:改变视觉大小而非实际大小。

2021-12-21 10:06:46 5282 5

原创 vue3中的vue-router简单实现以及router变迁带来的思考

jQuery 以及之前的时候,前端工程师并不需要了解路由的概念。对于每次的页面跳转,都由后端开发人员来负责重新渲染模板。前端依赖后端,并且前端不需要负责路由的这种开发方式,这样开发速度会很快、后端也可以承担部分前端任务等。当然,这种开发方式也有很多缺点,比如前后端项目无法分离、页面跳转由于需要重新刷新整个页面、等待时间较长等等,所以也会让交互体验下降。为了提高页面的交互体验,很多前端工程师做了不同的尝试。在这个过程中,前端的开发模式发生了变化,项目的结构也发生了变化:由原先的访问路由 -> 后端匹

2021-12-11 19:39:15 3095

原创 移动端点击穿透之谜

依然先说结论:目前为止所有的点击问题都是移动端事件触发顺序混乱导致的!关于捕获和冒泡→我们首先要知道的是:当我们鼠标按下一个按钮时,并不是“点击了一个按钮”,而是在这个区域内,鼠标(上的按键)被按下,操作系统和浏览器把这个信息对应到了“按钮”所在区域并触发其逻辑。事实上鼠标点击并没有位置信息,是操作系统一直在监听鼠标移动,根据累积的位移计算出来的坐标,将其传给浏览器。那么,把这个坐标转换为具体的元素上的事件的过程,就可称作“捕获”。那“冒泡”呢?这个不好直观解释,但有一点想必你是明白的:当你按下电视

2021-12-05 14:56:56 2258 5

原创 文字溢出省略和用户体验优化

这是我又一次探究文字溢出相关问题,也是我在用户体验道路上踏出的又一小步。之前提到“文字溢出”瞬间就能想到 ellipsis。再接触的多了一点会同时想到 display: -webkit-box;(多行溢出)。你一定欣喜若狂,认为掌握了“宇宙之玄妙”,拥有了“制胜之法宝”。但是如果你就此而去,你仍会时不时的发出疑问:“为什么我的溢出省略没有生效?”先说,目前已知的所有相关问题最终都可以归结为一个点上:行内样式与块级样式。包括一个很可惜的、似乎还没有文章给出具体说明的一个问题 —— flex!fl.

2021-10-27 14:54:25 8148 2

原创 探究vue-router重复路由跳转问题

有时候你在vue项目中做路由跳转时,可能是比如elementUI的memn同级跳转,也可能是比如root.vue中做身份校验跳转,总之,可能会遇到这样的报错:Uncaught (in promise) NavigationDuplicated:...你说他难看吧,也确实难看。但要说是个错误吧,也不影响正常逻辑。但是有错误还是要解决的。这个问题其实是vue-router3版本更新后和老的写法之间的兼容问题。其实有三种解决方法。网上的解决方案几乎都是第一种,但这样是会出问题的!先说导致问题的原因:

2021-10-22 23:25:34 5450

原创 深入typescript之如何高效地获取变量类型

假如我们有一个JSON对象,里边包含了name、age两个属性,我们可以通过一些TypeScript内置的工具函数来实现一些有意思的事情。通过keyof与typeof组合可以得到我们想要的结果:const obj = { name: 'Niko', age: 18}// 如果是这样的取值,只能写在代码中,不能写在 d.ts 文件中,因为声明文件里边不能存在实际有效的代码type keys = keyof typeof objlet a: keys = 'name' // pass

2021-10-22 23:22:41 6769

原创 vue源码解析之『我的数据去哪了』

之前学习vue的时候就对$set很感兴趣,但奈何一直都是“小打小闹”,本以为莫非这玩意根本用不到而渐渐淡忘没想到最近项目中接二连三的出现类似的问题让我不得不重视起来。决心探探这“小雷音寺”。见微知著:new Vue()时都做了什么?首先找到vue的构造函数function Vue (options) { if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue) ) { warn('Vu

2021-10-13 19:39:46 4471 1

原创 面试杂谈:数组去重和时间复杂度

在有了基础做保障之后的面试确实是提升自己扩展视野的绝好手段。面试官的问题可能会让你眼前一亮或者你知道但是压根没有联系到一起过。而这些可能是对于工作非常有帮助的。面试官:“请实现一个数组去重?”我:“有什么特别的要求吗?”面试官:“没有。”我:let newArr = [...new Set(arr)];面试官:“…能换一种方式吗?用原生的、es5的方式实现?”我:function unique(arr) { if (!Array.isArray(arr)) { .

2021-10-08 23:26:21 1891

原创 深入typescript之‘可选的’和‘必要的’

随着前端项目的规模不断变大,多人协同开发越来越受到所有公司的欢迎。随之而来的就是 TypeScript 被越来越多的项目所使用,这种变化并不是对技术的盲目追求,而是业务驱动下的技术进步,TypeScript 通过对原生 JavaScript 提供强类型加持,在很大程度上提升了代码质量,大大降低了多人协同场景下不同模块接口相互调用可能出现的隐性 bug。比如:如果一个接口的某个属性是非必要的,那么你可以使用可选?:,但是如果一个接口的属性在有的继承中是必要的,而在另一些时候是非必要的呢?如果一个

2021-09-26 15:15:50 2588

原创 我看JavaScript之美妙的“继承”

继承在各种编程语言中都充当着及其重要的角色,由于JavaScript“天生”的灵活性,使得JS在一些场景下急需一种可复用、规范性的解决方法,继承就这么自然而然的出现在了大众的视野当中。随着不断的深入学习JavaScript,突然在某一天发现了好像很多人用于“继承”功能的代码是不同的,那么就有两个问题需要我们回答 ——JS 的继承到底有多少种实现方式?ES6 的 extends 关键字是用哪种继承方式实现的呢?横空出世:es6之extends在es6发布之后,Jser惊奇的发现JavaScri

2021-09-23 00:26:53 158

原创 说说我对项目中css架构的浅显理解

在实现业务的过程中,我们难免会发现之前由于各种原因存在的代码中正在产生大量的冗余。这时候就需要优化代码,如果有功能的迭代,就是进行重构的好时机了!我曾看过很多关于架构的书籍、文章。恕我肤浅,至今都没能确切搞懂架构的真正含义,只是觉得:这是一个通过某些手段将项目变成一个层级划分、面向功能、结构清晰的关系。最近在搞某一块业务的重构,恰好时间不紧。组内大佬说“放手去干吧”。于是我将目光投向了自认为比较了解的CSS方面。ITCSS这是由csswizardry提倡的一个 CSS 设计方法论,他可以让你更好的

2021-09-23 00:19:26 768

原创 我在坑底的typescript手记之几种特殊的变量类型

1. anyany 指的是一个任意类型,它是官方提供的一个选择性绕过静态类型检测的作弊方式。我们可以对被注解为 any 类型的变量进行任何操作,包括获取事实上并不存在的属性、方法,并且 TypeScript 还无法检测其属性是否存在、类型是否正确。比如我们可以把任何类型的值赋值给 any 类型的变量,也可以把 any 类型的值赋值给任意类型(除 never 以外)的变量,如下代码所示:let anything: any = {};anything.doAnything(); // 不会提示错误a

2021-09-12 15:28:07 2591 3

原创 我在坑底的typescript手记之返回值类型和参数类型

返回值类型在 JavaScript 中,我们知道一个函数可以没有显式 return,此时函数的返回值应该是 undefined:function fn() { // TODO}console.log(fn()); // => undefined需要注意的是,在 TypeScript 中,如果我们显式声明函数的返回值类型为 undfined,将会得到如下所示的错误提醒。function fn(): undefined { // ts(2355) A function whose dec

2021-09-06 15:49:08 5703 2

原创 打造高性能css动画,你该怎么做?

你一定知道 JS 动画的优先级 < css 动画。即使必要,用 JS 操作class的优先级也一定 > 用 JS 直接修改具体样式。但是如果问到:“你了解css动画的性能么?如何优化?”你该怎么解决?CSS中有两个至关重要的概念 —— 重排和重绘。由此,通常会有一个问题:“为什么重排比重绘更耗性能?”要解释这个,还要回到浏览器的渲染原理上:自上而下解析 DOM,生成 DOM 树;解析 CSS,生成 CSSOM 树;(加载js代码)DOM 树和 CSSOM 树节点一一对应,结合生成

2021-08-21 11:51:26 2864 3

原创 杂谈:电商平台中的图片资源优化实战

图片渲染优化以前谈过许多次图片问题。也给出了几种方案。在实际使用中这几种无疑是可行而且方便的:loadingconnection API + promise.all()异步加载图片骨架屏懒加载 + 占位图但是在电商场景下,第一种方案是不可以的:我们不能为了一张图片而放弃整个内容对用户的正常展现。(尤其是这个图片还只是个背景图)第二种方案在首页是有奇效的,但是笔者觉得限制太多 —— 如果对于“通用型”的方案来说,骨架屏似乎更适合中大型项目。这个方案当时提出的场景是:在我校的实验系统首页会有

2021-08-14 16:46:05 1350

原创 小tips:单复选框与文字对齐问题的研究

以前来说,单复选框与后跟文字的对其问题其实大多出现在 `font-size` 为 `12px` 的场景下。在现在默认和常用的 `14px`下其实应该是不会出现的。随着浏览器的不断发展,对css的支持程度以及不同的实现方式,我们大概要时刻注意相关问题的产生...

2021-08-06 14:05:43 2246

原创 前端监控之处理异常的正确姿势

前端异常一般来说,根据笔者的目前研究,前端异常大体上可以分为两类:由于对语法的不了解、机制的不清楚或是没有做好降级处理而“主动”造成的错误(多为js异常)和由于资源加载、第三方库、浏览器本身机制造成的“被动异常”。第二种异常的解决方式很多,通过各种手段也大多可以避免(比如更换源这种常用手段)。我们主要来说一下第一种!函数的常见处理我们知道,js中充斥着大量的函数,它们承担封装某个具体功能的作用。但是在看许多代码时,笔者发现了一个问题:我们总喜欢用 return false/true; 来表示该函数内

2021-08-01 20:33:33 2437 2

原创 nginx适配杂谈

适配问题说起适配,其实就不得不提到“ 响应式 ”。而说起响应式,可能很多人下意识就会脱口而出:css @media媒体查询。可能还有些人会进一步说出:“利用css的em、rem单位”。是的,但是你有没有想过一个问题:em、rem是根据px计算得来的;而media又“足够复杂” —— 放在一般的项目中还好,如果将css自适应放到淘宝、京东这种极度复杂的场景下,就显得有些束缚了:因为我们知道,元素大小、位置甚至颜色等的改变都会引起回流和重绘!导致页面重新渲染…这对性能是不友好的。css单位上面说到e

2021-07-08 23:27:59 2894 1

原创 细说alternate三两事「精修版」

alternate?你没搞错吧?这不就是“交替、替换”吗?这有什么好说的?但是如果我问出来:alternate在HTML中的用法,具体作用,可能你只能说:“诶这不是那啥么”。说实话我一开始也压根不知道有这个东西,但是就在前两天这玩意解决了我的一大“难题”,顿时这兴趣不就来了么!alternate在网站换肤方面的应用好吧想来你也遇到过这种情况:网页换肤!其实我们的选择还是挺多的,比如:设置不同颜色,用JavaScript去一个一个的操控、替换(或者设置“全局的”class名)用JavaScr

2021-07-03 16:04:10 2334 1

原创 小酌Object、Map和WeakMap

Object对于普通Object,它的优势在于存、取元素,使用非常方便,可直接用字面量方式创建;而且里面属性值可以是不同类型:let obj={};obj.name='mxc';obj.age=18;console.log(obj);但这不是今天的重点。对于 Object,删除其中的属性有两种方式:delete 操作符和 =undefined。delete:delete 会从某个对象上移除指定属性。成功为 true,否则为false:delete obj.age;但这有几点不足

2021-06-28 20:54:00 1909 1

原创 探索vue自定义指令的玄妙

自定义指令的语法Vue自定义指令语法如下:Vue.directive(id, definition)传入的两个参数,id是指指令ID,definition是指定义对象。其中,定义对象可以提供一些钩子函数:钩子函数定义对象的钩子函数如下:bind:只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作inserted:被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于document中)update:被绑定元素所在的模板更新时调用,而不论绑定

2021-06-18 19:46:22 1967

原创 插入排序及其优化

直接插入排序插入排序时间复杂度最好是 O(n),最坏是O(n^2)。目前常用的 sort()方法在要排序的元素个数小于等于 10 的时候,采用插入排序实现。大体思路:将数组的第一个元素代表为已排序序列。用下一个元素往已排序序列进行插入,插入到相应位置循环之前的步骤,直到将所有的元素都插入到已排序序列中#include <stdio.h>void insertSort(int *a);int main() { int a[6] = { 5,2,4,1,6,3 }

2021-06-17 13:28:03 1573 2

原创 前端性能优化之你该在网络方面做什么?

我们都知道 “输入 url 并回车后” 或者说 “向服务端发请求” 浏览器并不是直接将请求内容送达服务端,这里有一步 “url解析,进行 dns 查找 ip 地址” 的过程:如果你对这张图有一点不解,那么请看下面这张图:显然我们应该将目光放在这里!DNS优化DNS也是有缓存的 —— 如果之前你解析过这个域名,会在本地/某个dns服务器上有缓存(一定时间内)。DNS解析有三种方法:递归查询:客户端向DNS服务器A查询,A向B查询、B向C查询。C将结果返回给B、B将结果返回给A,A将结果返回给

2021-06-05 23:38:04 1545 6

原创 “别具一格”的vue双向数据绑定原理

背景和一点点看法见网上许多文章讲vue双向数据绑定一开口就大谈 Object.defineProperty 和 proxy。其实不然。vue 中有两个“特别的”概念:响应式(它和defineProperty有关)和双向数据绑定。其实响应式原理是一种单向行为:它是数据到 DOM (也就是view视图)的映射;而真正的双向绑定,除了数据变化会引起 DOM 的变化之外,还应该在操作 DOM 改变后反过来影响数据的变化!vue 中提供了(内置的) v-model指令实现双向绑定。v-model和双向绑定

2021-05-31 14:30:42 3150 6

原创 js中的回调函数,你有想过吗?

前言前段时间腾讯三面(没看清要求,好像那个岗也要了解后端知识比如Redis但是我不会,已挂),有一个前端知识把我问懵了:请讲一下js中的回调函数,回调函数是什么?讲真,一直在用回调但是却压根没有想过,确实是我本身的不足。正文回调函数就是一个通过函数指针调用的函数。如果你把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数的时候,我们就说这是回调函数。函数指针,也就是函数的地址,可以看做是指向函数的指针变量。函数指针有两个用途:调用函数和做(别的)函数的参数!官方对回调函数

2021-05-27 12:15:03 1414 3

原创 你该知道的浏览器请求与Header

从url到页面展示过程中发生了什么让我们从一道“经典前端面试题” —— 从url到页面展示过程中发生了什么说起:url解析,根据dns系统进行ip查找;① 网络标准规定了 url 只能是数字和字母,还有一小些特殊符号。url 可以携带参数。如果不对 url 转义可能会出现歧义。比如 ?key=value 中可能key本身就包括=符号;url 编码是以 utf-8 为标准,但不是所有浏览器对所有情况都是这样。像JS的话就有 encodeURIComponent 和 encodeURI 来保证以

2021-05-16 12:37:31 10308 4

原创 小tips:对setTimeout延迟的研究

最近玩三国志战略版时发现它上面占领土地候一段时间内的动画效果不错,进而引发了一些探究:原动画可以简化为一个方块上有一个类似遮罩的白色的光晕,而且不断膨胀收缩,我开始一想,这不是css的scale么?然后一定时间后将其remove掉。然后发现其每隔一段时间颜色还会变淡一些,这里“理所当然”地用了“多次setTimeout”。但写完后我就立刻想到了“由于浏览器eventLoop和消息队列机制的原因,setTimeout通常不能准时,而且嵌套的setTimeout越多延时越大”。怎么解决呢?既然和时间相关

2021-05-12 16:50:15 1716 1

原创 请求中的cookie、session和token

首先要明确几个概念:这三个的诞生源于“HTTP是一个无状态的协议”;session是保存到服务端的,而cookie是保存到客户端的(通常说“cookie是实现session的一种方案”或者说“cookie是客户端保存session的载体”);token和前两者不同;session和cookie其目的是在http的无状态性下,为了使某个域名下的所有网页能够共享某些数据产生的一种手段。它们在客户端对服务端的访问中的运作方式如下:客户端发送的请求在被服务器端接受后,会在服务端建立一个sessi

2021-05-10 10:44:06 1657 1

原创 三问了解哈希表和哈希冲突

什么是哈希表?哈希表也叫散列表,它是基于数组的。这间接带来了一个优点:查找的时间复杂度为 O(1)、当然,它的插入时间复杂度也是 O(1)。还有一个缺点:数组创建后扩容成本较高。哈希表中有一个“主流”思想:转换。一个重要的概念是将「键」或「关键字」转换成数组下标。这由“哈希函数”完成。什么是哈希函数?由上,其作用就是将非 int 的键/关键字转化为 int 的值,使可以用来做数组下标。比如,HashMap 中就这样实现了哈希函数:static final int hash(Object key)

2021-05-07 18:36:31 2169 13

原创 由两种实现new的方式引发的探究

当你 new 一个构造函数时发生了什么?“众所周知”的三步:创建一个空对象,将它的引用赋给 this,继承函数的原型;通过 this 将属性和方法添加至这个对象;最后返回 this 指向的新对象,也就是实例。一般来说大概是这样的:function Mynew(parent,...rest){ let obj={}; obj.__proto__=parent.prototype; let res=parent.apply(obj,rest); return typeof res=="o

2021-05-05 16:34:03 4221 8

原创 Web安全:跨站点攻击csrf

什么是CSRF?你可以理解为:攻击者盗用你的身份,以你的名义发送恶意请求。它被称为“跨站请求伪造”。它能干的事情有很多:当你打开某个网站时,你另一个已经打开的购物网站已经完成支付;以你名义发送邮件,发评论;网络蠕虫;虚拟货币转账…CSRF攻击流程用户登录A网站(受信任的)A网站确认身份在A中访问B网站链接(危险的)B网站拿到A中的 cookie 后绕过A网站前端直接向其服务器发送请求这看似简单,其中却有一些值得注意的问题。比如:1. B网站向A服务器发送请求,是否会导致跨域问题?不会。

2021-04-25 13:18:28 3300 5

原创 深入JavaScript之JS引擎如何执行JS代码

我们大概经常能听到“执行环境”、“作用域”、“原型(链)”、“执行上下文”等内容,它们都在描述什么?JS代码的运行我们知道了js是弱类型语言,在运行时才确定变量类型。js引擎在执行js代码时,也会从上到下进行 词法分析、语法分析、语义分析 等处理,并在代码解析完成后生成AST(抽象语法树),最终根据AST生成CPU可以执行的机器码并执行。除此之外,JS引擎在执行代码时还会进行其它处理,如 V8 中还有两个阶段:编译阶段:该阶段会进行执行上下文的创建,包括创建变量对象、建立作用域链、确定 this

2021-04-23 19:50:05 4739 4

原创 webRTC初探:如何实现音视频的录制

一直心痒于“在线视频通话”却无从下手,直到最近接触了webRTC技术。虽然还未有此功力,但却“误打误撞”解决了困扰我的另一个问题:音视频录制!什么是webRTCMDN描述说:“WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点

2021-04-18 13:49:15 8322 6

原创 JavaScript操作符in:由一个问题引发的探究

事情是这样的:大家都知道“内存泄露”这回事吧。它有几个常见的场景:闭包使用不当引起内存泄漏(未声明的)全局变量分离的DOM节点(随意的)控制台的打印遗忘的定时器循环引用其中第 3 点引起了我的注意 —— 我当然清楚地知道它说的是比如:“假设你手动移除了某个dom节点,本应释放该dom节点所占用的内存,但却因为疏忽导致某处代码仍对该被移除节点有引用,最终导致该节点所占内存无法被释放”的情况<div id="root"> <div class="child">

2021-04-12 21:55:12 5302 12

JavaScript内存管理相关.docx

该文档是笔者经余月整理后所得,里面包含了JavaScript内存相关的知识概述。大概有浏览器内存管理、JavaScript内存泄漏及补救措施、闭包的概念,希望对诸君有帮助

2020-04-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除