Javascript - 文章列表
共 29 页
-
Node.js接口响应变慢与事件循环阻塞的排查方法(monitorEventLoopDelay测延迟、UV_THREADPOOL_SIZE调整libuv线程池与worker_threads拆分CPU任务)
Node.js接口慢但CPU不高、内存正常,多半是事件循环被占住。本篇讲用monitorEventLoopDelay量出p99延迟,区分主线程同步阻塞与libuv线程池排队两类成因,梳理JSON大报文、正则回溯、同步加密、nextTick递归等常见写法,给出UV_THREADPOOL_SIZE调整与worker_threads拆分的做法。
-
Node.js报错JavaScript heap out of memory的排查方法(--max-old-space-size调整堆上限、堆快照抓取与内存泄漏定位)
先区分V8堆溢出与被系统OOM杀掉:前者该抬堆上限,后者要往下压。含node -e读heap_size_limit、NODE_OPTIONS与pm2的node_args写法、process.memoryUsage五个字段的读法、--heapsnapshot-signal抓三张快照做对比,以及全局缓存、事件监听重复注册这几个高频泄漏点。
-
npm install报错ERESOLVE unable to resolve dependency tree的解决方法(peer依赖冲突定位与overrides覆盖)
npm install报ERESOLVE时先读报错定位冲突的两个包:确认npm与Node版本、对齐peer依赖范围、用overrides钉住嵌套依赖版本、npm ls与npm explain查来源,文中给出--legacy-peer-deps与--force的适用场景与区别。
-
JavaScript报错Cannot read properties of undefined的定位与解决方法(Source Map、可选链、防御性取值)
控制台报Uncaught TypeError: Cannot read properties of undefined (reading 'name'),说明有值在取属性时是undefined。报错只指出崩溃那一行,源头要靠堆栈往上追。记录Source Map还原压缩代码行号、异常断点定位、接口结构变化与异步首帧等四类常见来源,以及可选链与请求层结构校验的取舍。
-
测试
-
nodejs版本管理-nvm的安装和使用
nvm是管理nodejs版本的工具,可以方便地安装nodejs及切换nodejs版本nvm安装及使用的方法如下1、nvm官网下载地址:https://github.com/coreybutler/nvm-windows/releases2、设置国内镜像找到nvm的安装目录,如C:\Users\Administrator\AppData\Roaming\nvm将下面两行加到settings.text
-
create-react-app 报错
react创建项目时报错发现是在安装canvas的时候报的错,错误提示如下:C:\Users\Administrator\AppData\Local\node-gyp\Cache\14.16.0\include\node\uv.h(64,11):fatalerrorC1083:????????????:??uv/win.h??:Nosuchfileordirectory[D:\Doc\mine\r
-
跨域请求报错 No Access-Control-Allow-Origin header is present on the requested resource.
跨域请求,浏览器提示AccesstoXMLHttpRequestatxxx1fromoriginxxx2hasbeenblockedbyCORSpolicy:NoAccess-Control-Allow-Originheaderispresentontherequestedresource.解决方法为:添加headerAccess-Control-Allow-Origin:*
-
javascript gzip 支持中文
首先引用pako.jsfunctiongzip(str){//加密varbinaryString=pako.gzip(str,{to:string});returnbtoa(binaryString);}functionungzip(b64Data){//解密varstrData=atob(b64Data);//Convertbinarystringtocharacter-numberarrayv
-
HTML5上传文件显示进度的方法
htmlformid=form1enctype=multipart/form-datadivclass=toptoolinputtype=filename=fileToUploadid=fileToUploadonchange=fileSelected();/inputtype=buttononclick=uploadFile()style=display:none;value=上传/divid=