EventLoop 事件循环 主线程循环:即主线程会不停的从执行栈中读取事件,会执行完所有栈中的同步代码。 当遇到一个异步事件后,并不会一直等待异步事件返回结果,而是会将这个事件挂在与执行栈不同的队列中,我们称之为任务队列(Task Queue)。 当主线程将执行栈中所有...
浏览器缓存之强缓存与协商缓存
缓存直接会影响到网站性能和用户体验的,它是必要存在的。 优点 减少了不必要的数据传输,节省带宽减少服务器的负担,提升网站性能加快了客户端加载网页的速度用户体验友好 缺点 资源如果有更改但是客户端不及时更新会造成用户获取信息滞后,如果老版本有bug的话...
js 快速查找字符在数组集合中出现的位置之二分法
二分法 固名思义,一分为二,从中间开始查 条件 采用二分法查找数据集合必须是有序的 实现思路 循环,首页取出数据集合最中间的值,比较这个值与要查找的值的大小 currentKey === findKey,当然就等到结果了currentKey > findKey,由于是有序数据集合,就只...
浏览器地址栏输入 URL 到显示网页,这个过程到底发生了什么?
域名解析TCP连接发送 HTTP 请求服务器处理请求并返回HTTP报文渲染页面断开TCP连接 域名解析 网址到ip地址的转换过程就是DNS解析。然后建立 TCP 连接 TCP连接 HTTP协议是使用TCP协议作为其传输层协议的,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连...
redux-saga 使用详解说明
redux-saga 是一个用于管理应用程序 Side Effect(副作用,例如异步获取数据,访问浏览器缓存等)的 library,它的目标是让副作用管理更容易,执行更高效,测试更简单,在处理故障时更容易。 可以想像为,一个 saga 就像是应用程序中一个单独的线程,它独自负责处理副...
react proxy 详解,跨域配置 proxy is not a function
一个前后端分离的项目,本地联调,跨域配置至关重要。 传统设置浏览器跨域设置这里就不继续累赘了。 网上很多教程都在 “package.json” 里边设置 "proxy": { "/api": { "target": "http://localhost:3001" } } 初接触的小伙伴,直接按这种方式都做了发现...
js的数组排序算法及查找字符串中出现次数最多的字符算法
数组排序 冒泡排序(Bubble Sort) 要点:双层循环,依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。内层循环次数为:最大值 - 1 - 当前的外层循环,因为前面值已经是最小值,无须重复比较。 function bubbleSort(arr) { const len = arr.len...
react、react-redux、redux-thunk、react-saga运用
动机 随着 JavaScript 单页应用开发日趋复杂,JavaScript 需要管理比任何时候都要多的 state (状态)。 这些 state 可能包括服务器响应、缓存数据、本地生成尚未持久化到服务器的数据,也包括 UI 状态,如激活的路由,被选中的标签,是否显示加载动效或者分页器等等。 ...
React.memo、React Hooks 里 useMemo 和 useCallback 的区别及运用
useMemo 用来缓存数据,当组件内部某一部分渲染的数据(组件),需要通过计算而来,这个计算是依赖与特定的state、props数据,我们就用 useMemo 来缓存这个数据,以至于我们在修改她们没有依赖的数据源的情况下,多次调用这个计算函数,浪费计算资源。 import React, { ...
less 基本用法指南
什么是 lesss ? Less 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。 安装及使用 安装 npm i -g less 使用 在命令行...