
前端
文章平均质量分 77
一只理智恩
生活不止,学无止境
技术:h5,css3,jq,js,vue,react,uniapp,webGL,webGis,canvas,cesium,three.js,aigc,node.js、Golang、python、c++
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一篇文章让你实现前端JS 、 Golang 、 Python如何接入DeepSeek大模型实现自己的AI
本文将通过三种技术栈实现与DeepSeek大模型的对话交互,提供可直接运行的代码示例及详细注释。原创 2025-02-23 18:23:57 · 2246 阅读 · 0 评论 -
Ts高级篇:深入讲解Ts最难懂的高级类型和玩法
类型保护允许我们在运行时检查以确保在某个作用域里的类型。通过定义一个函数,其返回值是一个类型谓词,可以实现类型保护。pet.swim();isFish函数作为一个类型保护,它检查pet是否为Fish类型,并在之后的代码中确保pet的类型为Fish。原创 2024-10-23 15:21:07 · 1418 阅读 · 0 评论 -
three.js 渲染调优,提升3d场景更逼真的渲染效果
我们渲染采用最为专业的ACES色调映射(也是UE里面默认的色调映射),也只有ACES支持虚幻功能,虚幻绽放亮度。再然后我们需要把色彩空间编码改成THREE.sRGBEncoding即可。在着色器中色值的提取与色彩的计算操作一般都是在线性空间。在webgl中,贴图或者颜色以srgb传入时,必须转换为线性空间。计算完输出后再将线性空间转为srgb空间。linear颜色空间:物理上的线性颜色空间,当计算机需要对sRGB像素运行图像处理算法时,一般会采用线性颜色空间计算。原创 2024-07-08 19:02:32 · 1729 阅读 · 0 评论 -
ChatGPT:流式数据输出的原理与SSE技术
ChatGPT的流式输出,指的是在与用户进行对话时,ChatGPT能够实时地、连续地输出文本内容,而不是等待整个回答完全生成后再一次性输出。这种流式输出的方式,使得ChatGPT的响应更加迅速,用户体验更加流畅。SSE,全称Server-Sent Events,是一种基于HTTP协议的服务器推送技术。它允许服务器主动向客户端发送数据和信息,实现了服务器到客户端的单向通信。ChatGPT的流式输出功能是一项具有重要意义的技术创新,它为用户提供了更加高效、智能的对话体验。原创 2024-07-08 18:35:33 · 2189 阅读 · 0 评论 -
React中的useCallback
是一个强大的Hook,用于优化React应用的性能,通过避免不必要的函数重新创建和子组件渲染。使用时,应合理选择依赖项,以确保函数在需要时更新。与useMemo相比,专注于函数记忆化,而useMemo则用于计算结果的记忆化。理解两者的区别和适用场景,可以帮助开发者更有效地优化React应用。useMemo和memo 介绍React中的useMemo和memo-CSDN博客。原创 2024-07-07 21:58:59 · 1226 阅读 · 0 评论 -
React中的useMemo和memo
React是一个声明式的JavaScript库,用于构建用户界面。在开发过程中,性能优化是一个重要的方面。useMemo和memo是React提供的工具,用于帮助开发者避免不必要的渲染和计算,从而提升应用性能。原创 2024-07-07 21:53:02 · 1222 阅读 · 1 评论 -
快速构建验证码(canvas)
【代码】快速构建验证码(canvas)原创 2024-05-30 11:52:29 · 162 阅读 · 0 评论 -
前端需要了解的HTTP缓存知识
HTTP缓存是一种用于提高网站性能和减少带宽使用的技术。当用户访问一个网页时,浏览器会下载页面上的所有资源(如HTML、CSS、JavaScript等),这些资源会占用大量的带宽和时间。为了减少这些资源的加载时间,HTTP缓存机制被引入。缓存分为和两种,强缓存不能缓存地址栏访问的文件,协商缓存可以缓存地址栏访问的文件。原创 2024-05-19 16:32:00 · 1310 阅读 · 0 评论 -
Web Workers 介绍
Web Workers 提供了一种在 Web 页面中执行后台任务的有效方式,它通过创建独立的线程来运行脚本,从而不会阻塞用户界面。通过使用 Web Workers,你可以提高网页的响应性,尤其是在处理复杂计算或长时间运行的任务时。然而,使用 Web Workers 也需要考虑线程间的通信开销,以及可能引入的复杂性。正确地管理 Workers 和线程间的通信对于构建高效的 Web 应用也是至关重要的。原创 2024-05-01 12:51:21 · 1038 阅读 · 1 评论 -
前端之实现大文件上传的解决方案———断点续传
断点续传是一种在网络传输中提高效率和可靠性的技术,特别适用于大文件的上传和下载。文件分片:将大文件分割成多个小块,这允许并行上传和从中断处恢复。并行上传:通过同时上传多个文件块,可以提高整体的上传速度。校验和记录:每个文件块在上传前后都进行校验,以确保数据的完整性。同时,记录已成功上传的块,为断点续传提供依据。请求恢复:当传输中断时,客户端使用记录的信息请求从最后成功上传的块继续上传。服务器支持:服务器端需要能够接收分片数据,验证块的完整性,并支持断点续传的逻辑。原创 2024-05-01 12:41:06 · 3767 阅读 · 2 评论 -
从前端角度防范XSS攻击的策略与实践
防范XSS攻击是一个复杂的过程,需要开发者在前端开发中始终保持警惕。通过输入验证、输出编码、合理设置HTTP头部以及利用现代前端框架和库提供的安全特性,可以大大降低XSS攻击的风险。然而,安全是一个不断发展的领域,开发者应该持续关注最新的安全研究和最佳实践,以保护用户和数据安全。原创 2024-04-12 21:58:19 · 1502 阅读 · 0 评论 -
React之Diff 算法
在 React 中,通过 React.createElement 也能生成一个虚拟 DOM 节点(ReactElement)。在 React15 及以前,采用了递归的方式创建虚拟 DOM,递归过程是不能中断的。如果组件树的层级很深,递归会占用线程很多时间,造成卡顿。React16 将递归的无法中断的更新重构为异步的可中断更新,推出了新的 Fiber 架构。原本的 ReactElement 只有 children,在中断恢复时,无法找到其兄弟节点和父节点,无法从断点处继续完成渲染工作。原创 2024-04-04 12:17:33 · 1856 阅读 · 0 评论 -
React高阶组件(HOC)
高阶组件不是组件,它是一个将某个组件转换成另一个组件的纯函数。高阶组件的主要作用是实现代码复用和逻辑抽象、对state和props进行抽象和操作、对组件进行细化(如添加生命周期)、实现渲染劫持等。在实际的业务场景中合理的使用高阶组件,可以提高开发效率和提升代码的可维护性。高阶组件的实用性使其频繁地被大量React.js相关的第三方库,如的connect方法、等所使用,了解高阶组件对我们理解各种React.js第三方库的原理很有帮助。高阶组件有两种实现方式,分别是属性代理和反向继承。原创 2024-03-24 23:41:34 · 1261 阅读 · 0 评论 -
前端并发控制
我们探讨了使用Promise,callback和RxJS的方式实现并发限制,每种方式中又介绍了三种代码思路,包括全部并发、分批并发以及限制并发。「全部并发」适用于需要将请求分批次处理的场景,简单易懂,但可能不是最高效的方法。「分批并发」在保持一定并发度的同时,避免同时发出过多的请求,适用于需要控制资源消耗的场景。「限制并发」则结合了并发的高效性和结果顺序的一致性,适用于对结果顺序有要求的并发请求处理。通过选择合适的方法,我们可以在保证性能的同时,满足不同场景下对并发控制的需求。原创 2024-03-24 23:30:48 · 1905 阅读 · 0 评论 -
HTML5 Web Worker之性能优化
Web Workers 是现代 Web 开发的一个基本特性,它允许开发人员将 CPU 密集型任务放到单独的线程中执行,从而提高应用的性能和响应能力。然而,在处理 Web Workers 时需要记住一些重要的限制和注意事项,例如无法访问 DOM 和数据类型之间传递的限制等。为了避免这些潜在问题,可以采用上面提到的策略,如使用异步方法并注意卸载的任务的复杂性。在未来,使用 Web Workers 进行多线程似乎仍然是提高 Web 应用程序性能和响应能力的重要技术。原创 2024-03-10 12:54:32 · 1693 阅读 · 0 评论 -
input中文输入法导致的高频事件
发现在中文还没选中就触发了,现在希望没选中不要触发。我们要做的是从开始到结束中间的过程过滤掉,不触发搜索。原创 2024-03-10 11:56:53 · 334 阅读 · 0 评论 -
给大家推荐一个好玩的前端动画,仿siri效果
【代码】给大家推荐一个好玩的前端动画,仿siri效果。原创 2024-03-03 00:16:31 · 1191 阅读 · 1 评论 -
前端常见的设计模式
js复制代码// 需求:新员工入职,按照规定流程,进行相关培训和办理好员工相关资料init() {// 初始化员工信息// 创建员工名片// 入职培训// 训后测试。原创 2024-02-16 14:00:19 · 2024 阅读 · 0 评论