摘要:
一、Map 和 WeakMap 有什么不同之处 1、Map 是为了解决对象中的 key 只能为字符串的缺陷 //基本的对象 const obj = { 'name': '张飞',, 'age': 18 } // Map let m = new Map() a.set(obj,1) 我们的 Map 是 阅读全文
摘要:
这篇文章主要记录及介绍一下前端实现隐写术及相关知识,具体内容不细节展开,因为感觉工作中实用性不强,就是知道有这个东西,可以实现这些东西,以后如果需要使用的话,再细细研究学习,不过真的感觉不错,会玩,哈哈。 主要推荐下面这篇文章:《通过文本与图片的隐写来隐藏信息(非常有意思!)》- https://m 阅读全文
摘要:
一、CSRF 攻击 1、CSRF漏洞的发生 相比 XSS,CSRF 的名气似乎并不是那么大,很多人都认为CSRF“不那么有破坏性”。真的是这样吗?接下来有请小明出场 —— 小明的悲惨遭遇: 这一天,小明同学百无聊赖地刷着Gmail邮件。大部分都是没营养的通知、验证码、聊天记录之类。但有一封邮件引起了 阅读全文
摘要:
一、HTTP 拦截器的设计与实现 1、拦截器简介 对于大多数 SPA 应用程序来说, 通常会使用 token 进行用户的身份认证。这就要求在认证通过后,我们需要在每个请求上都携带认证信息。针对这个需求,为了避免为每个请求单独处理,我们可以通过封装统一的 request 函数来为每个请求统一添加 to 阅读全文
摘要:
一、Pomise.all 的使用 Promise.all 可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被 reject 失败状态的值。代码示例如下: let p1 = new Promise(( 阅读全文
摘要:
一、并发控制简介 在日常开发过程中,你可能会遇到并发控制的场景,比如控制请求并发数。那么在 JavaScript 中如何实现并发控制呢?在回答这个问题之前,我们来简单介绍一下并发控制。 假设有 6 个待办任务要执行,而我们希望限制同时执行的任务个数,即最多只有 2 个任务能同时执行。当 正在执行任务 阅读全文
摘要:
一、需求背景 在数据库表里,一般都有主键,主键是不能重复的,因为是唯一标识。假设这个时候需求来了,需要插入一组数据,这些数据中有些是完全新的,可以直接插入(insert),但有些主键内容是和原本表内的数据主键内容是一致的,这些就无法直接插入了,而是执行更新(update)操作。这时候就比较麻烦了,因 阅读全文
摘要:
俗话说得好,工欲善其事必先利其器。利用一些开源项目,我们将能轻松应对一些常见工作场景:文件上传、图片处理、文档处理、在线表格、表单设计器、H5 页面设计器。 1、文件上传 - uppy 24.6k uppy 是一个体验顺滑、模块化的 JavaScript 文件上传器,可以无缝地与任何应用程序集成。它 阅读全文
摘要:
一般在我们工作中,主要会涉及到 9 种文件下载的场景,每一种场景背后都使用不同的技术,其中也有很多细节需要我们额外注意。 在浏览器端处理文件的时候,我们经常会用到 Blob 。比如图片本地预览、图片压缩、大文件分块上传及文件下载。在浏览器端文件下载的场景中,比如我们今天要讲到的 a 标签下载、sho 阅读全文
摘要:
经常听说“不使用的对象应手动赋值为null”,但是要问原因,大都回答“有利于GC更早回收内存,减少内存占用”,但再往深入问就回答不出来了。所以这里做一点深入研究。 一、将对象赋值为null,对垃圾回收有用吗? 网上很多java性能优化里都会有这么一条:尽量把不使用的对象显式得置为null,这样有助于 阅读全文