腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
返回腾讯云官网
Czy‘s Blog
专栏成员
举报
454
文章
704236
阅读量
31
订阅数
订阅专栏
申请加入专栏
全部文章(454)
编程算法(174)
javascript(84)
html(46)
css(40)
vue.js(36)
网络安全(35)
渲染(32)
node.js(30)
网站(29)
react(27)
java(25)
缓存(24)
https(23)
http(21)
php(17)
数据结构(17)
打包(16)
tcp/ip(16)
linux(15)
python(14)
api(13)
存储(12)
面向对象编程(11)
file(10)
txt(10)
version(10)
xml(9)
ecmascript(9)
unix(9)
webpack(9)
容器(9)
二叉树(8)
安全(8)
小程序(8)
浏览器(8)
sql(7)
微信(7)
事件(7)
c++(6)
jquery(6)
ide(6)
svg(6)
html5(6)
正则表达式(6)
设计模式(6)
json(5)
数据库(5)
github(5)
编辑器(5)
对象(5)
数据(5)
android(4)
mvc(4)
git(4)
文件存储(4)
命令行工具(4)
shell(4)
dns(4)
udp(4)
product(4)
产品(4)
函数(4)
客户端(4)
作用域(4)
负载均衡(3)
其他(3)
actionscript(3)
神经网络(3)
深度学习(3)
访问管理(3)
express(3)
redux(3)
npm(3)
windows(3)
chrome(3)
directory(3)
event(3)
list(3)
state(3)
tabs(3)
width(3)
配置(3)
机器学习(2)
c#(2)
go(2)
regex(2)
ajax(2)
typescript(2)
webview(2)
access(2)
负载均衡缓存(2)
nginx(2)
mapreduce(2)
SSL 证书(2)
数据加密服务(2)
腾讯云测试服务(2)
人工智能(2)
babel.js(2)
游戏(2)
分布式(2)
ssh(2)
ftp(2)
seo(2)
grep(2)
socket编程(2)
数据分析(2)
canvas(2)
ascii(2)
ipv6(2)
abstract(2)
adapter(2)
backup(2)
builder(2)
cut(2)
diff(2)
eof(2)
factory(2)
hidden(2)
input(2)
object(2)
pdf(2)
spaces(2)
target(2)
text(2)
touch(2)
vi(2)
window(2)
wrapper(2)
变量(2)
编译(2)
插件(2)
服务端(2)
脚本(2)
接口(2)
设计(2)
算法(2)
同步(2)
异步(2)
状态机(2)
云服务器(1)
对象存储(1)
DNS 解析 DNSPod(1)
官方文档(1)
ruby(1)
lua(1)
bash(1)
angularjs(1)
单片机(1)
汇编语言(1)
硬件开发(1)
svn(1)
ubuntu(1)
bash 指令(1)
thinkphp(1)
批量计算(1)
NAT 网关(1)
云推荐引擎(1)
腾讯专有云 PaaS 平台(1)
图像处理(1)
eslint(1)
sass(1)
rxjs(1)
rollup.js(1)
mobx(1)
开源(1)
图像识别(1)
决策树(1)
线性回归(1)
cdn(1)
单元测试(1)
markdown(1)
rpc(1)
kerberos(1)
机器人(1)
nat(1)
sdk(1)
fiddler(1)
验证码(1)
action(1)
amd(1)
apply(1)
bind(1)
buffer(1)
cat(1)
crontab(1)
debug(1)
default(1)
delimiter(1)
display(1)
document(1)
dom(1)
dos(1)
dry(1)
dump(1)
exe(1)
exit(1)
fixed(1)
focus(1)
fold(1)
function(1)
gnu(1)
history(1)
href(1)
init(1)
int(1)
interactive(1)
kill(1)
line(1)
lines(1)
loading(1)
mac(1)
mime(1)
nan(1)
null(1)
numeric(1)
opacity(1)
overflow(1)
paste(1)
pid(1)
pool(1)
prefix(1)
ps(1)
reload(1)
require(1)
restart(1)
return(1)
root(1)
rules(1)
service(1)
share(1)
sort(1)
spa(1)
spacing(1)
split(1)
stdin(1)
string(1)
submit(1)
tar(1)
terminal(1)
textarea(1)
time(1)
undefined(1)
usb(1)
var(1)
visibility(1)
web(1)
word(1)
闭包(1)
布局(1)
部署(1)
递归(1)
动画(1)
分页(1)
服务器(1)
工作(1)
构建工具(1)
后端(1)
进程(1)
局域网(1)
连接(1)
模块化(1)
排序(1)
软件工程(1)
数据恢复(1)
树形结构(1)
数组(1)
索引(1)
通信(1)
图表(1)
文件系统(1)
系统(1)
项目经理(1)
协议(1)
性能(1)
性能优化(1)
优化(1)
原型(1)
指针(1)
搜索文章
搜索
搜索
关闭
基于Chrome扩展的浏览器可信事件与网页离线PDF导出
事件
协议
chrome
pdf
浏览器
Chrome扩展是一种可以在浏览器中添加新功能和修改浏览器行为的软件程序,我们可以基于Manifest规范的API实现对于浏览器和Web页面在一定程度上的修改,例如广告拦截、代理控制等。Chrome DevTools Protocol则是Chrome浏览器提供的一套与浏览器进行交互的API,我们可以基于DevTools协议控制Chromium内核的浏览器进行各种操作,例如操作页面元素、模拟用户交互等。
WindRunnerMax
2024-07-03
152
0
基于React的SSG静态站点渲染方案
react
打包
渲染
客户端
数据
静态站点生成SSG - Static Site Generation是一种在构建时生成静态HTML等文件资源的方法,其可以完全不需要服务端的运行,通过预先生成静态文件,实现快速的内容加载和高度的安全性。由于其生成的是纯静态资源,便可以利用CDN等方案以更低的成本和更高的效率来构建和发布网站,在博客、知识库、API文档等场景有着广泛应用。
WindRunnerMax
2024-06-05
195
0
初探富文本之基于虚拟滚动的大型文档性能优化方案
渲染
编辑器
性能
性能优化
优化
虚拟滚动是一种优化长列表性能的技术,其通过按需渲染列表项来提高浏览器运行效率。具体来说,虚拟滚动只渲染用户浏览器视口部分的文档数据,而不是整个文档结构,其核心实现根据可见区域高度和容器的滚动位置计算出需要渲染的列表项,同时不渲染额外的视图内容。虚拟滚动的优势在于可以大大减少DOM操作,从而降低渲染时间和内存占用,解决页面加载慢、卡顿等问题,改善用户体验。
WindRunnerMax
2024-06-04
345
0
从油猴脚本管理器的角度审视Chrome扩展
脚本
浏览器
chrome
插件
对象
在之前一段时间,我需要借助Chrome扩展来完成一个需求,当时还在使用油猴脚本与浏览器扩展之间调研了一波,而此时恰好我又有一些做的还可以的油猴脚本 TKScript (点个star吧 😁),相对会比较熟悉脚本管理器的能力,预估是不太能完成需求的,所以趁着这个机会,我又学习了一波浏览器扩展的能力。那么在后来需求的开发过程中,因为有些能力是类似于脚本管理器提供的基础环境,致使我越来越好奇脚本管理器是怎么实现的,而实际上脚本管理器实际上还是一个浏览器扩展,浏览器也并没有给脚本管理器开后门来实现相关能力,而让我疑惑的三个问题是:
WindRunnerMax
2024-05-14
288
0
Canvas简历编辑器-我的剪贴板里究竟有什么数据
编辑器
浏览器
事件
数据
canvas
在这里我们先来聊聊我们究竟应该如何操作剪贴板,也就是我们在浏览器的复制粘贴事件,并且在此基础上聊聊我们在Canvas图形编辑器中应该如何控制焦点以及如何实现复制粘贴行为。
WindRunnerMax
2024-05-08
108
0
Canvas图形编辑器-数据结构与History(undo/redo)
数据结构
canvas
history
编辑器
设计
对于编辑器而言,History也就是undo和redo是必不可少的能力,实现历史记录的方法通常有两种:
WindRunnerMax
2024-04-16
173
0
基于OT与CRDT协同算法的文档划词评论能力实现
算法
同步
渲染
存储
编辑器
当我们实现在线文档平台时,划词评论的功能是非常必要的,特别是在重文档管理流程的在线文档产品中,文档反馈是非常重要的一环,这样可以帮助文档维护者提高文档质量。而即使是单纯的将划词评论作为讨论区,也是非常有用的,尤其是在文档并不那么完善的情况下,对接产品系统的时候可以得到文档之外的输入。那么本文将通过引入协同算法来解决冲突,从而实现在线文档的划词评论能力。
WindRunnerMax
2024-04-11
225
0
深入在线文档系统的 MarkDown/Word/PDF 导出能力设计
markdown
pdf
word
设计
系统
当我们实现在线文档的系统时,通常需要考虑到文档的导出能力,特别是对于私有化部署的复杂ToB产品来说,文档的私有化版本交付能力就显得非常重要,此外成熟的在线文档系统还有很多复杂的场景,都需要我们提供文档导出的能力。那么本文就以Quill富文本编辑器引擎为基础,探讨文档导出为MarkDown、Word、PDF插件化设计实现。
WindRunnerMax
2024-03-28
236
0
初探富文本之文档diff算法
渲染
数据结构
diff
算法
索引
当我们实现在线文档的系统时,通常需要考虑到文档的版本控制与审核能力,并且这是这是整个文档管理流程中的重要环节,那么在这个环节中通常就需要文档的diff能力,这样我们就可以知道文档的变更情况,例如文档草稿与线上文档的差异、私有化版本A与版本B之间的差异等等,本文就以Quill富文本编辑器引擎为基础,探讨文档diff算法的实现。
WindRunnerMax
2024-02-22
233
0
仿照AirDrop(隔空投送)优雅地在局域网中传输文件
服务器
局域网
客户端
连接
数据
在前一段时间,我想在手机上向电脑发送文件,因为要发送的文件比较多,所以我想直接通过USB连到电脑上传输,等我将手机连到电脑上之后,我发现手机竟然无法被电脑识别,能够充电但是并不能传文件,因为我的电脑是Mac而手机是Android,所以无法识别设备这件事就变得合理了起来。那么接着我想用WeChat去传文件,但是一想到传文件之后我还需要手动将文件删掉否则会占用我两份手机存储并且传输还很慢,我就又开始在网上寻找其他软件,这时候我突然想起来了AirDrop也就是隔空投送,就想着有没有类似的软件可以用,然后我就找到了Snapdrop这个项目,我觉得这个项目很神奇,不需要登录就可以在局域网内发现设备并且传输文件,于是在好奇心的驱使下我也学习了一下,并且基于WebRTC/WebSocket实现了类似的文件传输方案,并且在实现的过程中解决了如下问题:
WindRunnerMax
2024-01-02
618
0
初探webpack之单应用多端构建
webpack
变量
编译
构建工具
配置
在现代化前端开发中,我们可以借助构建工具来简化很多工作,单应用多端构建就是其中应用比较广泛的方案,webpack中提供了loader与plugin来给予开发者非常大的操作空间来操作构建过程,通过操作中间产物我们可以非常方便地实现多端构建,当然这是一种思想而不是深度绑定在webpack中的方法,我们也可以借助其他的构建工具来实现,比如rollup、vite、rspack等等。
WindRunnerMax
2023-12-03
262
0
从零实现的浏览器Web脚本
web
对象
脚本
浏览器
事件
在之前我们介绍了从零实现Chrome扩展,而实际上浏览器级别的扩展整体架构非常复杂,尽管当前有统一规范但不同浏览器的具体实现不尽相同,并且成为开发者并上架Chrome应用商店需要支付5$的注册费,如果我们只是希望在Web页面中进行一些轻量级的脚本编写,使用浏览器扩展级别的能力会显得成本略高,所以在本文我们主要探讨浏览器Web级别的轻量级脚本实现。
WindRunnerMax
2023-11-04
834
0
初探富文本之React实时预览
react
渲染
编译
对象
作用域
在前文中我们探讨了很多关于富文本引擎和协同的能力,在本文中我们更偏向具体的应用组件实现。在一些场景中比如组件库的文档编写时,我们希望能够有实时预览的能力,也就是用户可以在文档中直接编写代码,然后在页面中实时预览,这样可以让用户更加直观的了解组件的使用方式,这也是很多组件库文档中都会有的一个功能。那么我们在本文就侧重于React组件的实时预览,来探讨相关能力的实现。文中涉及的相关代码都在https://github.com/WindrunnerMax/ReactLive,在富文本文档中的实现效果可以参考https://windrunnermax.github.io/DocEditor/。
WindRunnerMax
2023-10-20
531
0
ReactPortals传送门
react
渲染
dom
函数
事件
React Portals提供了一种将子节点渲染到父组件以外的DOM节点的解决方案,即允许将JSX作为children渲染至DOM的不同部分,最常见用例是子组件需要从视觉上脱离父容器,例如对话框、浮动工具栏、提示信息等。
WindRunnerMax
2023-09-30
267
0
SVG与foreignObject元素
渲染
svg
text
后端
浏览器
可缩放矢量图形Scalable Vector Graphics - SVG基于XML标记语言,用于描述二维的矢量图形。作为一个基于文本的开放网络标准,SVG能够优雅而简洁地渲染不同大小的图形,并和CSS、DOM、JavaScript等其他网络标准无缝衔接。SVG图像及其相关行为被定义于XML文本文件之中,这意味着可以对其进行搜索、索引、编写脚本以及压缩,此外这也意味着可以使用任何文本编辑器和绘图软件来创建和编辑SVG。
WindRunnerMax
2023-08-13
553
0
从零实现的Chrome扩展
chrome
插件
浏览器
配置
通信
Chrome扩展是一种可以在Chrome浏览器中添加新功能和修改浏览器行为的软件程序,例如我们常用的TamperMonkey、Proxy SwitchyOmega、AdGuard等等,这些拓展都是可以通过WebExtensions API来修改、增强浏览器的能力,用来提供一些浏览器本体没有的功能,从而实现一些有趣的事情。
WindRunnerMax
2023-07-24
554
0
基于drawio构建流程图编辑器
编辑器
部署
工作
配置
图表
drawio是一款非常强大的开源在线的流程图编辑器,支持绘制各种形式的图表,提供了Web端与客户端支持,同时也支持多种资源类型的导出。
WindRunnerMax
2023-07-10
1.5K
0
闭包
闭包
变量
对象
函数
作用域
React Hooks是React 16.8引入的一个新特性,其出现让React的函数组件也能够拥有状态和生命周期方法,其优势在于可以让我们在不编写类组件的情况下,更细粒度地复用状态逻辑和副作用代码,但是同时也带来了额外的心智负担,闭包陷阱就是其中之一。
WindRunnerMax
2023-05-26
440
0
初探富文本之OT协同实例
打包
数据结构
服务端
客户端
数据
在前边初探富文本之OT协同算法一文中我们探讨了为什么需要协同、为什么仅有原子化的操作并不能实现协同、为什么要有操作变换、如何进行操作变换、什么时候能够应用操作、服务端如何进行协同调度等等,这些属于完成协同所需要了解的基础知识,实际上当前有很多成熟的协同实现,例如ot.js、ShareDB、ot-json、EasySync等等,本文就是以ShareDB为OT协同框架来实现协同的实例。
WindRunnerMax
2023-05-26
721
0
Hooks与事件绑定
函数
事件
数据
数组
作用域
在React中,我们经常需要为组件添加事件处理函数,例如处理表单提交、处理点击事件等。通常情况下,我们需要在类组件中使用this关键字来绑定事件处理函数的上下文,以便在函数中使用组件的实例属性和方法。React Hooks是React 16.8引入的一个新特性,其出现让React的函数组件也能够拥有状态和生命周期方法。Hooks的优势在于可以让我们在不编写类组件的情况下,复用状态逻辑和副作用代码,Hooks的一个常见用途是处理事件绑定。
WindRunnerMax
2023-04-24
1.9K
0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档