需求起因以前写过一篇文章:前端不暴露ak/sk直接上传awsS3的方案因为项目里还用到的阿里云的oss上传,就研究了阿里云是不是也有避免ak/sk泄露到前端的方案,这里也复述一下这么做的原因:常规上传方案,为避免ak/sk被用户知道,导致文件泄露、篡改,通常是前端上传文件到后端,再由后端上传到阿里云oss,参考架构:用户=>浏览器选文件=>后端服务器=>oss这个方案的问题点:链路长,上传慢,因为多了一个中间节点,时间多花一倍,既然链路长了,那么出现超时中断错误的概率就更高了;如果文件太大,后端服务器还不能接收,需要修改默认配置,比如SpringBoot默认上传最大1M,但是修改它又可能导致额
背景有时候我们需要点击下载一些资源如excel、pdf、ppt、图片等,并且要支持自定义下载名字。当下载链接与当前页是同源时,可以通过a标签download属性设置,比如我在a.com打开的页面下载a.pdf下载这样子同源下载的文件名就是"自定义名字.pdf"但是一般实际场景,文件资源都是有独立的资源服务器的,和主应用的域名不一致,上面的方法就不管用了。那么也没有其他方法呢?方案下载的实际原理就是前端发一个http请求去目标链接,然后资源服务器在接收请求后在responseheader里面设置content-type为文件流,和Content-Disposition,例如:Content-Ty
html2canvas读取dom结构转换成canvas,最后转成图片形式展示缺点:没有编辑功能链接:html2canvasjs-web-screen-shot大佬模仿qq截图实现的,也可以搭配webrtc实现web端远程桌面共享链接:githubgitee简单使用npminstalljs-web-screen-shot--saveimportScreenShortfrom"js-web-screen-shot";newScreenShort({ enableWebRtc:false,//是否启用webrtc,值为false则使用html2canvas来截图 loadCrossImg:true,
前言作为一名Android开发,经常要跟后端同事联调接口,那么总避免不了要格式化接口返回值,将其转换为清晰直观高亮的UI样式以及折叠部分内容,方便我们查看定位关键的信息。一直以来都是打开Google搜索json格式化关键字,然后选择Google推荐的前三名的网址,比如bejson网站:https://www.bejson.com/json.cn网站:https://www.json.cn/开源中国的JSON解析:https://tool.oschina.net/codeformat/json我自己搞的小网站在Google搜索上还排不上号,这里王婆卖瓜,自卖自夸一下,也分享一下子。json2.t
目录前言一、this在不同函数中的指向1.普通函数this指向全局对象 2.构造函数指向new这个对象3.箭头函数指向上一级作用域 4.对象函数指向这个对象5.数组中有函数,指向这个数组6.apply、call调用时指向第一个参数,没有则默认window 7.window内置对象指向window对象二、预编译1.js执行步骤2.预编译作用3.预编译步骤前言this指向真的是老生常谈的问题,在八股文当中也占据很重要的位置,面试过程中也会经常问道this指向问题,那么我们今天就来看看this指向和实践把~后面还浅讲了以下预编译~有兴趣继续往下看吧~一、this在不同函数中的指向1.普通函数this
一:前言 最近进行项目开发时遇到了需要前端直接调用摄像头,并直接进行播放的需求。原本计划通过海康威视官网的《WEB无插件开发包V3.2》直接进行控制、交互,实现摄像头直接登录以及取流预览。但是前端人员现场驻场开发后反映各种兼容性问题频发,反正就是不能友好的进行预览播放。鉴于此我直接查询了官网上相关的sdk,然后选用了《设备网络SDK_Win64V6.1.9.4_build20220412》进行开发java版本的转码工具。整体思路是在PS流中解析出H264的裸流然后通过websocket传给前端,前端基于wfs.js进行h264的裸流播放。二:开发准备下载开发SDK开发包,并先查看和熟悉s
自从接触前端开发以来,严格来说是从接触React开发以来,一直用的create-react-app脚手架。用起来确实爽,啥也不用干,直接上业务代码(这其实也就是脚手架的意义所在)。随着技术的进阶,是时候抛开脚手架工具自建一个React应用开发环境了。该环境支持的技术场景:1.支持React2.支持typescript3.支持scss4.支持调试热更新一、创建项目目录npminitgitinit二、安装依赖npminstall--save-dev@babel/core@babel/cli@babel/preset-env@babel/preset-reactnpminstall--save-de
Jest是一个令人愉快的JavaScript测试框架,专注于简洁明快。Jest拥有良好的文档,只需很少的配置,并能根据你的需求进行扩展。它能确保任何JavaScript代码的正确性。它为你提供了易于理解、熟悉且功能丰富的API来编写测试用例,并快速地反馈结果。单元测试Jest一、jest优势零配置:Jest的目标是在大部分JavaScript项目上实现开箱即用,无需配置。快照:能够轻松追踪大型对象的测试。快照可以与测试代码放在一起,也可以集成进代码行内。隔离:测试程序拥有自己独立的进程以最大限度地提高性能。优秀的api:从it到expect-Jest将整个工具包放在同一个地方。好书写、好维护、
前端面试是求职过程中非常重要的一环,因此需要进行充分的准备和演练。本文将从以下几个方面总结前端面试的知识点:求职准备阶段在求职准备阶段,需要对自己的技能水平、工作经验和职业规划进行全面的审视和评估。具体而言,包括以下方面:基础知识:HTML、CSS、Javascript等前端基础知识。框架与库:React、Vue等主流前端框架及其生态系统。工具链:Webpack、Babel、ESLint等前端开发工具。算法与数据结构:基本算法思想、常见数据结构(数组、链表、栈、队列、树等)。实践项目:有意义的实践项目能够展示自己的编码能力和解决问题的能力。面试知识点在面试中,考察的知识点主要集中在以下几个方面
一.强烈推荐这个静态服务器browser-sync1.browser-sync的使用browser-sync的文档真的是超级强大一定要看现在来讲具体的使用方法,下面的代码是写在gulpfile.js中的ps:这里也要注意middleWare这个参数能够在请求中转到你想去的地方//开启静态服务器vargulp=require('gulp');varbrowserSync=require('browser-sync');//静态服务器的插件varmock=require('./mock.js');//自己将拦截,生成随机数据这一模块提取出去了gulp.task('browser-sync',fun