自定义console let content = arg.reduce((acc, val) => acc + `%c ${val} `, '') // 内容。let content = arg.reduce((acc, val) => acc + `%c ${val} `, '') // 内容。console.sucess('成功', '112')console.sucess('成功', '112')console.error('错误', '112')console.error('错误', '112')
文件加载失败的备用方式 img src="original-image.jpg" onerror="this.src='12.png'" width="105" alt="js onerr事件处理">console.log('加载异常触发')
Session + JWT + Cookie Signature: 使用Header和Payload, 加上服务器的密钥, 按照指定的签名算法生成签名.例如, 使用HMAC SHA-256算法生成签名。完成验证: 如果签名验证通过且JWT未过期, 说明JWT是有效的, 服务器可以信任JWT中的用户信息.提取并解析JWT: 服务器从请求头中提取JWT, 并将其分成Header、Payload和Signature三部分.用户登录 : 用户通过前端提交登录请求(通常包含用户名和密码)到服务器.
localForage.js localStorage:localStorage是浏览器提供的一种持久化存储解决方案,用于以键值对形式存储字符串数据。如果浏览器既不支持IndexedDB也不支持WebSQL,则localForage.js将回退到使用localStorage作为底层存储引擎。使用localForage.js,您可以轻松地在浏览器中存储和检索数据,无论是临时数据还是持久化数据。localForage.js会根据可用的存储引擎自动选择最佳的选项,并在后台处理与底层存储的交互。
浏览器的事件循环 总结:现代浏览器通常有一个主进程(浏览器进程)、多个渲染进程(用于运行页面,每个页面一个渲染进程)、一个共享的网络进程(处理网络请求),以及一个共享的GPU进程(处理图形渲染)。其实在我们电脑的操作系统中,每一个运行的程序都会由自己的进程(可能是一个,也可能有多个),浏览器就是一个程序,它的运行在操作系统中,拥有一组自己的进程(主进程,渲染进程,网络进程,GPU进程....)各个进程之间是相互独立的(这样不会因为一个进程的问题导致其他的进程奔溃不能使用),而进程之间又是需要相互协作的。
echart 放大后请求数据,保持X轴状态不变,Tooltip数据索引不对问题 03:此时Tooltip显示对应的索引数据,是旧数据的索引。01:等放大echart时候,去请求后端数据,重新渲染。02:渲染新数据后,X轴的状态不变化。
谷歌浏览器插件content_scripts、background、popup通信 前期页面准备manifest.json|content_scripts : 浏览器里面使用的,和页面共享DOM,不共享JScontent-scripts不能访问绝大部分chrome.xxx.api,除了下面这4种: chrome.extension(getURL , inIncognitoContext , lastError , onRequest , sendRequest) chrome.i18n chrome.runtime(connect , getManifest , ge.
echart 使用min max做为坐标起始点 一般情况下,数据都是和X轴点,数据是点对点的显示,也有其他情况下,一个坐标轴下显示两条曲线,并且大家的为维度不是对应的点对点的数据,同时又指定了坐标轴的范围,以这个范围作为起始点 // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); var xMin = 0; var xMax = 2500; var seaHeight = 5...