- 博客(19)
- 收藏
- 关注
原创 使用fetch流式获取响应数据
流式获取一般在用于数据量比较大的情况,一次性返回会导致前端页面加载时间过长或者请求超时等问题,这时候我们就可以考虑使用流式的方式拿到部分数据并先展示,从而提升用户体验。我这里的场景是在对接chatGPT语言模型的时候采取的这种方案,因为目前的大语言的模型的结果都是需要一点点计算的,如果提出的问题比较复杂就导致响应的时间过长。
2023-08-06 17:50:28
4415
3
原创 vite+vue3+electron项目搭建教程
因为vue项目的默认入口文件是index.html,eletron项目的默认入口文件是main.js,所以这里我们就要解决两个框架搭配时,以哪个文件为入口。手动在vue项目中的根目录创建文件然后在中修改人口文件因为vue项目默认采用的是ES6的模块化,而electron基于nodejs,nodejs的模块化又是使用的commonjs,所以我们在。
2023-08-04 13:59:16
2455
3
原创 前端跨域问题解决方案
出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。,小程序和APP开发不会有跨域问题。
2023-07-29 11:52:10
633
原创 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
根据它的建议,我们去执行npm install --force 或者 npm install --legacy-peer-deps。去指定 npm 的版本。即可以这么使用:npx -p npm@6 npm install --legacy-peer-deps。过了一些时间发现依赖安装好了,但有些项目执行完这两条命令之后依然还是上面那个报错。这时候你就应该去看一下你的npm版本了。温馨提示:使用 npm@6 不需要卸载 npm@7,可以使用。
2023-07-21 15:05:21
308
1
原创 html页面转换成图片
html2canvas将html转成图片,可以npm引入,也可以使用直接引入js文件。对于尺寸单位是px的生成图片清晰,但是对于单位是rem的,生成的图片中有一大片的空白,(绘制的内容没有占满整个canvas),虽然可以通过自定义width和height生成画布一样大的图片,但是图片有些模糊,所以如果可以将rem转成px或者em去生成图片。html2canvas详情,参数详情。
2023-07-15 21:33:23
1792
1
原创 html中资源修饰符的用法及作用
跟preload类似,只是拿取的时机不一致,preload是页面加载时立即获取,而prefetch是当浏览器空闲的时候获取。异步加载js文件,不阻塞html解析,当js加载完毕后,停止解析html,立即执行js,执行完毕后继续解析html。预先加载资源(任意资源),不执行任何操作,一般用来缓存时用,其它地方使用这个资源的时候就不会再次发送请求了。html解析完成后在执行js,类似于DOMContentLoaded事件。
2023-07-08 21:07:10
162
1
原创 WebSocket使用及优化(心跳机制与断线重连)
与http不同,websocket支持全双工通信(即:在客户端和服务之间双向通信)在websocket问世之前,客户端与服务器通常采用http轮询和Comet等方式保持长链接。于是websocket便诞生了,它不仅节省资源和带宽,更是能实现长链接作用,只需客户端主动与服务端握手一次,即可进行实时通信,实现推送技术。然而,这么做无疑会对服务端造成资源消耗,因为HTTP请求包含较长的头文件,只传递了少许的有用信息,十分消耗资源。WebSocket在2008年被提出,其通信协议于2011被制定为标准。
2023-06-29 23:06:30
943
原创 使用post请求建立长连接实现sse
所以使用长连接SSE(Server Sent Event),直译为服务器发送事件,顾名思义,也就是客户端可以获取到服务器发送的事件。我们常见的 http 交互方式是客户端发起请求,服务端响应,然后一次请求完毕;但是在 sse 的场景下,客户端发起请求,连接一直保持,服务端有数据就可以返回数据给客户端,这个返回可以是多次间隔的方式。最近遇到一个chatGPT的相关功能,需要做成文字一个个弹出的功能,如果使用普通的http请求会一次性得到结果,如果后台计算时间太长还可能会导致超时,影响用户体验。
2023-06-29 22:48:06
3845
6
原创 JS监听页面关闭
但在新版本的浏览器中,为了安全性,已经不支持自定义弹窗。在以前(旧版本的浏览器中),可以自定义提示文案。能做的,只是调用浏览器自带的提示确认窗格。
2023-06-21 18:45:01
4443
原创 vue3+vite 动态引入图片的方法
import.meta.url 是一个 ESM 的原生功能,会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用,在一个 JavaScript 模块中,通过相对路径我们就能得到一个被完整解析的静态资源 URL。
2023-06-14 13:59:11
1593
1
原创 TypeScript 中对象解构赋值时定义类型
虽然能正常运行,但是实际上是把 name 属性赋值给了 string 变量,把 age 属性赋值给了 number 变量。在用 TypeScript 开发时需要解构一个对象。
2023-06-14 00:11:04
2897
转载 Sourcetree 重置 Git 的账号密码
WIN+R,拷贝 C:\Users\%USERNAME%\AppData\Local\Atlassian\到输入框,直接回车,弹出 SourceTree 的文件夹目录。
2023-06-08 14:38:18
3151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人