timedatectl set-timezone Asia/Shanghai # 服務器時區(qū)設置 linux for Debian nginx mysql redis...
timedatectl set-timezone Asia/Shanghai # 服務器時區(qū)設置 linux for Debian nginx mysql redis...
CodeGuide 前端代碼規(guī)范 JavaScript 使用 2 個空格縮進。eslint: indent[https://eslint.org/docs/rules/ind...
GIT 規(guī)范 合并規(guī)范 為適應多個feature同時并行交錯開發(fā),做到每個 feature 獨立干凈、合并的代碼不被意外覆蓋,這里有幾個良好的代碼合并習慣(規(guī)范)供大家參考,...
@5d9861e7a727
let count = 0;
const taskQueue = [];
/**
* @param uid uid
* @param max 最多并發(fā)請求數量
*/
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));
}
});
};
筆試題:調用接口并發(fā)請求控制優(yōu)化 requestUserProfile 并發(fā)請求 requestUserProfile 是個通用用戶信息接口,通過傳入uid,拿用戶昵稱在一個群聊里有10多個用戶,點擊群...
為什么需要加密? HTTP 有以下安全性問題: 使用明文進行通信,內容可能會被竊聽; 不驗證通信方的身份,通信方的身份有可能遭遇偽裝; 無法證明報文的完整性,報文有可能遭篡改...
小程序虛擬滑動序組件 Virtual Swiper 在 Swiper 組件上層 封裝 Virtual Swiper,原理通 Swiper virtual slide[http...
仿發(fā)朋友圈,圖片拖拽排序功能,小程序拖拽排序組件 效果演示 地址:https://github.com/yijinc/fishui[https://github.com/yi...
滑動過快,或頁面列表元素高度還沒渲染出來,可能導致 scroll-view 的 scrollToLower 不觸發(fā) 特別是在部分安卓手機上,scroll-view 滾動速度可...
1. 先用以下命令查看當前的限制 launchctl limit 會看到如下的結果,也就是各項資源的限制 第一列為項的名稱,第二列為軟件限制,第三列為硬件限制 2. 修改to...
認識 BASH 這個shell 通過 man 查看 command 的使用說明書(manual pages),通常從 /usr/share/man 讀取 環(huán)境變量 $PATH...
完全理解 Promise 基本實現 網上有很多 Promise 實現方式,看了都不是特別理解。這里以一種更簡單的形式一步一步去理解/實現它。這里僅涉及 Promise 構造函...
跨源資源共享 CORS 跨源資源共享(Cross-Origin Resource Sharing)是一種基于 HTTP 頭的機制。出于安全性,瀏覽器限制腳本內發(fā)起的跨域請求,...
```ts
let count = 0;
const memo = {};
/**
* @param uid uid
* @param max 最多并發(fā)請求數量
*/
const requestUserProfile = async (uid = '1', max = 2) => {
// 這里調用requestProfile 進行優(yōu)化
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);
}
```
筆試題:調用接口并發(fā)請求控制優(yōu)化 requestUserProfile 并發(fā)請求 requestUserProfile 是個通用用戶信息接口,通過傳入uid,拿用戶昵稱在一個群聊里有10多個用戶,點擊群...
優(yōu)化 requestUserProfile 并發(fā)請求 requestUserProfile 是個通用用戶信息接口,通過傳入uid,拿用戶昵稱在一個群聊里有10多個用戶,點擊群...
在下讀書少??
img onload 不觸發(fā),img onload 不執(zhí)行在做多圖大圖頁面的時候,經常需要先loading,等待image.onload 才放開loading,但是img.onload在圖片從緩存/內存直接讀取的時候,部分瀏覽器如s...
最簡單的SVG圖標庫,只支持color 和 size 兩個屬性直接添加 svg文件,生成react 、vue、vue3、svg 對應組件 github項目地址[https:/...
在做多圖大圖頁面的時候,經常需要先loading,等待image.onload 才放開loading,但是img.onload在圖片從緩存/內存直接讀取的時候,部分瀏覽器如s...
ES6日常語法:let、const、解構復制、箭頭函數、字符串模版、塊級、Map、Set、Proxy Array日常方法:Array.prototype.map、reduce...