240 发简信
IP属地:上海
  • 基础运维常用命令

    timedatectl set-timezone Asia/Shanghai # 服务器时区设置 linux for Debian nginx mysql redis...

  • 120
    前端代码规范

    CodeGuide 前端代码规范 JavaScript 使用 2 个空格缩进。eslint: indent[https://eslint.org/docs/rules/ind...

  • GIT规范

    GIT 规范 合并规范 为适应多个feature同时并行交错开发,做到每个 feature 独立干净、合并的代码不被意外覆盖,这里有几个良好的代码合并习惯(规范)供大家参考,...

  • @5d9861e7a727

    let count = 0;
    const taskQueue = [];

    /**
    * @param uid uid
    * @param max 最多并发请求数量
    */
    const requestUserProfile = (uid = '1', max = 2) => {
    const pullTask = () => {
    if (taskQueue.length === 0) {
    return;
    }
    if (count === max) {
    return;
    }
    count++;
    const { resolve, uid } = taskQueue.shift();
    resolve(runTask(uid));
    };

    const runTask = (id) => {
    const promise = requestProfile(id);
    promise.then(() => {
    count--;
    pullTask();
    });
    return promise;
    };

    return new Promise((resolve) => {
    taskQueue.push({ resolve, uid });
    if (count < max) {
    count++;
    const { resolve, uid } = taskQueue.shift();
    resolve(runTask(uid));
    }
    });
    };

    笔试题:调用接口并发请求控制

    优化 requestUserProfile 并发请求 requestUserProfile 是个通用用户信息接口,通过传入uid,拿用户昵称在一个群聊里有10多个用户,点击群...

  • 120
    HTTPS 加密原理

    为什么需要加密? HTTP 有以下安全性问题: 使用明文进行通信,内容可能会被窃听; 不验证通信方的身份,通信方的身份有可能遭遇伪装; 无法证明报文的完整性,报文有可能遭篡改...

  • 小程序虚拟滑动序组件 Virtual Swiper

    小程序虚拟滑动序组件 Virtual Swiper 在 Swiper 组件上层 封装 Virtual Swiper,原理通 Swiper virtual slide[http...

  • 小程序拖拽排序组件 Drag

    仿发朋友圈,图片拖拽排序功能,小程序拖拽排序组件 效果演示 地址:https://github.com/yijinc/fishui[https://github.com/yi...

  • 小程序 scroll-view 下拉到底部 onScrollToLower 不触发

    滑动过快,或页面列表元素高度还没渲染出来,可能导致 scroll-view 的 scrollToLower 不触发 特别是在部分安卓手机上,scroll-view 滚动速度可...

  • MacOS解决too many open files

    1. 先用以下命令查看当前的限制 launchctl limit 会看到如下的结果,也就是各项资源的限制 第一列为项的名称,第二列为软件限制,第三列为硬件限制 2. 修改to...

  • 前端需要掌握的Linux命令

    认识 BASH 这个shell 通过 man 查看 command 的使用说明书(manual pages),通常从 /usr/share/man 读取 环境变量 $PATH...

  • 完全理解 Promise 实现

    完全理解 Promise 基本实现 网上有很多 Promise 实现方式,看了都不是特别理解。这里以一种更简单的形式一步一步去理解/实现它。这里仅涉及 Promise 构造函...

  • HTTP之跨域

    跨源资源共享 CORS 跨源资源共享(Cross-Origin Resource Sharing)是一种基于 HTTP 头的机制。出于安全性,浏览器限制脚本内发起的跨域请求,...

  • ```ts

    let count = 0;
    const memo = {};

    /**
    * @param uid uid
    * @param max 最多并发请求数量
    */
    const requestUserProfile = async (uid = '1', max = 2) => {
    // 这里调用requestProfile 进行优化
    let timer;
    const loopRequestProfile = (resolve: any) => {
    timer && cancelAnimationFrame(timer);
    if (memo[uid]) {
    return resolve(memo[uid])
    }
    if (max > count) {
    count += 1;
    requestProfile(uid).then((data) => {
    count -= 1;
    memo[uid] = data;
    resolve(data);
    });
    } else {
    // 循坏调用 loopRequestProfile 直到 count < max
    timer = requestAnimationFrame(() => {
    loopRequestProfile(resolve);
    });
    }
    };

    return new Promise(loopRequestProfile);
    }
    ```

    笔试题:调用接口并发请求控制

    优化 requestUserProfile 并发请求 requestUserProfile 是个通用用户信息接口,通过传入uid,拿用户昵称在一个群聊里有10多个用户,点击群...

  • 笔试题:调用接口并发请求控制

    优化 requestUserProfile 并发请求 requestUserProfile 是个通用用户信息接口,通过传入uid,拿用户昵称在一个群聊里有10多个用户,点击群...

  • 在下读书少😂

    img onload 不触发,img onload 不执行

    在做多图大图页面的时候,经常需要先loading,等待image.onload 才放开loading,但是img.onload在图片从缓存/内存直接读取的时候,部分浏览器如s...

  • 120
    最简单的SVG图标库,搭建自己的图标库

    最简单的SVG图标库,只支持color 和 size 两个属性直接添加 svg文件,生成react 、vue、vue3、svg 对应组件 github项目地址[https:/...

  • img onload 不触发,img onload 不执行

    在做多图大图页面的时候,经常需要先loading,等待image.onload 才放开loading,但是img.onload在图片从缓存/内存直接读取的时候,部分浏览器如s...

  • 前端高频面试题

    ES6日常语法:let、const、解构复制、箭头函数、字符串模版、块级、Map、Set、Proxy Array日常方法:Array.prototype.map、reduce...