网站首页 > 技术文章 正文
1、检测点击元素外部
比如你想要点击弹窗外部去关闭弹窗,或者 Vue 的自定义指令 clickoutside,都是利用了下面这个代码片段
2、一次性事件监听
相信大家都用过 addEventListener吧?你监听后想要解除需要用到 removeEventListener,但是如果你只是想要一次性监听的话,可以传入第三个参数
3、手动解除事件监听
还是 addEventListener,如果你不想使用 removeEventListener 去解除监听的话,你也可以使用 AbortController + signal 去进行手动解除监听
4、控制并发数
现在前端中使用异步操作已经是常态,更别说异步请求了,而当异步请求并发量比较高的时候,为了节约网络资源提高用户体验,我们需要控制并发数
limitFn 的具体实现我放在下面了
const limitFn = (limit) => {
const queue = [];
let activeCount = 0;
const next = () => {
activeCount--;
if (queue.length > 0) {
queue.shift()();
}
};
const run = async (fn, resolve, ...args) => {
activeCount++;
const result = (async () => fn(...args))();
try {
const res = await result;
resolve(res);
} catch { }
next();
};
const enqueue = (fn, resolve, ...args) => {
queue.push(run.bind(null, fn, resolve, ...args));
if (activeCount < limit && queue.length > 0) {
queue.shift()();
}
};
const generator = (fn, ...args) =>
new Promise((resolve) => {
enqueue(fn, resolve, ...args);
});
return generator;
};
5、生成唯一ID
也就是生成一个唯一的 uuid,其实现在很多库都可以做,比如 lodash,当然你也可以自己写一个
const uuid = (a) =>
a
? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
: ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid)
6、格式化时分秒
如果你想要把时间格式化成 HH:mm:ss 这样的话
const formatSeconds = (s) =>
[parseInt(s / 60 / 60), parseInt((s / 60) % 60), parseInt(s % 60)]
.join(':')
.replace(/\b(\d)\b/g, '0$1')
7、提取 URL 的参数
可以将 URL 上的参数提取出来,变成一个对象
const getUrlParams = (query) =>
Array.from(new URLSearchParams(query)).reduce(
(p, [k, v]) =>
Object.assign({}, p, { [k]: p[k] ? (Array.isArray(p[k]) ? p[k] : [p[k]]).concat(v) : v }),
{}
)
8、打开弹窗时禁止页面滚动
当我们打开弹窗时,我们不希望整个页面还能滚动,那么可以在打开弹窗时去设置页面的滚动样式
猜你喜欢
- 2025-01-20 如何在网页中执行一段 pandas 代码?
- 2025-01-20 View Source:在 iOS 上轻松查看网页源代码
- 2025-01-20 008-html文档标签 html文档类型、标题、主体 #web前端
- 2025-01-20 前端程序员必须知道的 Web 漏洞,快来看看
你 发表评论:
欢迎- 518℃Oracle分析函数之Lag和Lead()使用
- 517℃几个Oracle空值处理函数 oracle处理null值的函数
- 514℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 503℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 500℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 490℃【数据统计分析】详解Oracle分组函数之CUBE
- 470℃Oracle有哪些常见的函数? oracle中常用的函数
- 469℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)