showlotus's blog

标签 · 工具函数

首页

归档

关于

竞态函数过期

JavaScript工具函数

如上图所示,点击不同的 Tab 页签,Table 中展示不同的数据,这是一个很常见的页面交互逻辑。 设想一下,当前的处理逻辑是:有三个 Tab 页签和一个 Table,每点击 Tab 后,都会发起一个请求,然后请求成功后,会对 Table 重新赋值。也即,不同的 Tab 切换,都会对这个唯一的 Table 进行重新赋值。 仔细想一下,这会有问题吗? 有的,这里隐藏着一个 “竞态” 问题 ...

相似请求合并

JavaScript工具函数

前言在日常开发中,有一种很常见的接口场景:例如,需要获取 type 为 a 的数据,这时候的接口入参为 { type: ["a"] }。如果需要同时获取 type 为 a 和 b 的数据,则入参为 { type: ["a", "b"] }。在需要获取多种 type 数据的场景中,显而易见,只 ...

重复请求优化

JavaScript工具函数

设想一种场景,有两个组件,这两个组件在初始化阶段,都需要调用同一个 API 接口去获取数据。为了防止请求冗余,可以把两个组件的请求都挪到父组件中,由父组件统一调用一次请求,然后再将响应的数据结果传给两个子组件。这种方法应该是最常见的,不过它也有一个局限性条件:两个组件必须有一个共同的祖先组件,如果这两个组件是同级的兄弟组件倒也还好,如果非同级,那么数据的传参就会有些麻烦了。那么还有其他办法 ...

最大余额法

JavaScript工具函数

当开发一些图表类页面时,经常需要对一组数据求百分比,而像是常用的 Echarts 图表,在内部已经计算妥当了,保证一组数据在计算完百分比之后,这些百分比相加后仍然等于 100% 。而这种计算百分比的算法之一就是 —— 最大余额法。 核心思想就是,根据每部分所占比例的大小,按照从高到低的顺序去分配剩余部分。 比如,一组数据 [ 4, 4, 3 ],所占百分比为 [ 36.363636363 ...

大数相乘

JavaScript工具函数

由于 JS 最大整数为 2 ^ 53 - 1,最大长度也就是 16 位,当进行一些高精度计算时,容易造成精度丢失的问题。平常对于一些大数值的数据,一般都用 String 类型存储。而使用 String 类型,当进行四则运算时,就需要进行特殊处理,本篇就来实现一下两个大数的相乘。 两个整数的大数相乘,这是一道经典的算法题了,参考力扣 43. 字符串相乘。而这里需要考虑小数的场景,思路其实很简 ...