webpack前端项目调试环境安装入门:webpack.config.js禁用UglifyJs只合并JavaScript不压缩混淆代码 webpack是目前比较流行的前端build工具,本质上是一个模块打包器。合并压缩JavaScript,css,图片等。
目前有很多开源项目使用webpack进行打包。
node.js创建aria2代理服务器:使用net.socket转发rpc或http request请求,替换websocket Aria2 BT下载可通过网页端访问,网页站通过RPC与Aria程序通讯。
Aria2通过websocket来调用aria2的rpc服务,实现状态查询、创建下载任务,这样可以解决ajax的跨域问题。不过这样NAS服务器要新开一个端口,而且旧浏览器并不支持。此时可使用代理服务器。
request停止维护:用node.js实现http网页爬虫抓取,模拟ajax\post请求,大文件上传下载 最近 node.js 一个比较出名的 http request 模块停止维护了。其实这个模块已经变得非常臃肿,模块依赖过多,体积过大,接口不统一。
其实现在node.js的http模块已经非常完善,几行代码就能自己写一个。模拟post指定 data 即可:
request({ url: 'http://ourjs.com/home', data: { abc: 1 } }, function(err, response, data) {
console.log(data)
})
OnceDB:使用Redis全文字符串模糊搜索,多条件查询,创建索引搜索等使用帮助教程 OnceDB是基于Redis实现的全文搜索数据库,可以像SQL数据库那样创建辅助索引,提高条件搜索的性能。OnceDB并不改变Redis的数据存储结构,Redis数据库文件可以直接在OnceDB中操作,然后再返回Redis中使用。OnceDB提供直接搜索指令,支持 String 和 Hash 等对象,
用node.js在Windows或Linux平台上高性能解压/压缩zip、tar大文件,输出到文件或Stream流 另外此方法还支持输出到流,比如说浏览器输出流,或命令行终端:
zip('./zip-util.js', process.stdout, function() {
console.log(arguments)
})
用CSS实现分页符,控制Web网页打印时自动强制分页:page-break-after教程
page-break-after可以实现强制分页,比如始终在<footer>元素后插入分页符, @media print 表示这段CSS只在打印时起作用。
@media print {
footer {page-break-after: always;}
}
SVG矢量图视窗viewBox,嵌套HTML综合实例:建立用户自定义相对坐标系统 在SVG绘制的任何一个时刻,你可以通过嵌套svg、foreignObject或者iframe来建立新的viewport和用户坐标系。在这篇文章中,我们将看一下我们如何这样做,以及这样做如何帮助我们控制SVG元素并让它们变得更加灵活
怎么通过OnceOA免费实现外网访问家庭、企业内网服务器网站、网盘、办公系统 OnceOA 是一款能够跨平台运行的网盘管理系统,个人用户永久免费。OnceOA 纯Web交互,无需安装任何客户端、APP就可使用。可创建SMB共享目录、SVN/Git数据仓库,在电视手机平板上播放或备份视频或照片,可实现NAS网盘管理,文档管理/同步、知识管理、配置各类企业管理软件等。
OnceOA 基于模块化开发,可安装免费的内网穿透模块 OnceAir,就可实现外网访问,即从公网访问家里的私有云网盘。
Node.JS中回调嵌套和async/await执行空函数性能效率对比测试 执行测试文件,测试环境是 node v12.15.0。
$ node testPerformance.js
callback done 1
callback done 0
async done 13
可以看到,按顺序执行同一个空函数4千次,用时为0~1,即在1毫秒内完成。
用async/await方式执行,用时12~14毫秒之间。
不过如果只执行一次,对性能的影响微乎其微。不过在高并发场所,回调函数的性能要优于async/await
Node.JS如何按顺序调用async函数,如何判断是否为async函数,在mocha中自动化测试async/await代码 在Node.JS中,如果你即不喜欢回调代码嵌套,也不喜欢promise的链式写法,可以使用async/await将程序改造成顺序执行的。那么调用时和普通函数调用有何不同? 因为 await 只能在async中调用,因此可以:
(async () => {
await asyncCall()
console.log(2)
})();