这个项目能做什么

Visitor Analytics SDK 是一款面向 Web 应用的 TypeScript 分析库,可与 React、Vue、Svelte、Solid、Astro 以及原生 JavaScript 等任意前端框架配合使用。该 SDK 强调隐私保护:从不收集个人身份信息,所有数据均经过匿名化处理。 核心特性包括: - 框架无关,为各大主流框架提供专用集成包 - 模块化、插件式架构,允许自定义采集器、存储适配器和插件 - 类型安全 API,严格的 TypeScript 定义,无任何 any 类型 - Tree-shakable ESM 模块,仅打包所需部分 - 零运行时依赖,采用被动事件监听器、requestIdleCallback、防抖处理器和批量 DOM 读取等方式优化性能 - 离线支持,通过队列在联网时同步数据,具备指数退避重试机制及 page unload 时的 sendBeacon 回退方案 - 可配置项丰富,包括批次大小、刷新间隔、重试限制、压缩、去重、会话超时和自定义数据字段 SDK 提供核心的 createAnalytics 函数,返回一个分析实例。实例方法包括启动、停止、刷新、同步、重试失败上传、添加或移除采集器、安装插件、查询已存储记录、导出数据、手动追踪路由变更、订阅事件以及销毁实例。 采集器广泛收集各类数据:浏览器名称与版本、设备操作系统与平台、屏幕尺寸、性能指标(导航计时、绘制计时、LCP、CLS、INP)、环境信息(时区、语言、色彩方案)、功能支持情况(WebGL、WebGPU、WASM、Service Worker)以及用户交互数据(会话时长、滚动深度、点击次数、路由变更、UTM 参数)。所有采集器均为可选,并可通过自定义实现进行扩展。 提供内置存储适配器,支持内存存储、localStorage 和 IndexedDB,同时可接入 Redis 等自定义后端。上传器对记录进行批量处理,具备指数退避重试、批次去重功能,并在浏览器支持 CompressionStream 时启用载荷压缩。 集成示例覆盖 React(AnalyticsProvider、useAnalytics、usePageView)、Vue(createAnalyticsPlugin、useVueAnalytics)、Svelte(createAnalyticsStore)、SolidJS(AnalyticsProvider、createAnalyticsHook)、Astro 及纯 JavaScript。每个集成示例均演示了如何初始化 SDK、访问已采集数据及触发手动上传。 SDK 内置插件系统。插件可在安装时注册额外采集器或修改行为,并在卸载时执行清理。例如 AB 测试插件可将当前实验变体添加到每条记录中。 隐私保障明确:绝不收集姓名、邮箱、密码、Cookie 内容、表单输入、精确 IP 地址、GPS 坐标、击键记录、点击坐标或任何持久性指纹标识符。会话标识符为每次实例化时随机生成的 UUID,不跨会话持久化。 已知限制包括:基于活动的会话超时机制、多标签页场景下使用 localStorage 时写入非原子操作(推荐使用 IndexedDB),以及可选的 gzip 压缩需要较新浏览器支持。 性能优化措施包括:被动事件监听器、针对耗时操作的 requestIdleCallback、防抖处理的滚动与窗口大小调整、采集器的懒加载初始化、通过 requestAnimationFrame 批量读取 DOM,以及在页面卸载时使用 navigator.sendBeacon 确保可靠投递。 SDK 采用 MIT 许可证发布。