Joan León

RSS: https://joanleon.dev/rss.xml
Blog de desarrollo web: Web Performance, CSS, JavaScript, React, Web Animation, Media Optimization y Creative Coding.

动态 import():浏览器已经缓存了我们的模块

Joan León 解释了浏览器中动态 import 的缓存机制。每次调用 import 时,浏览器不会重新下载或重新执行模块,而是从 module map 中复用已有的模块实例。 module map 是浏览器内部维护的模块注册表,记录每个模块的 URL 与其已加载实例的对应关系。文章还讨论了何时两个 import 指向的不再是同一个模块,以及首次加载失败后再次调用 import 会发生什么。 这对依赖动态 import 做代码拆分或按需加载的前端开发者有直接参考价值。
评论点赞收藏10 天前

WebMCP 在静态站点上:GeeksCAT Conf 2026 的网站,已就绪面向代理

Joan León 将 GeeksCAT Conf 2026 的官网做成一个用 Astro 构建的静态站点,并通过 WebMCP 向 AI 代理暴露议程、讲者和活动数据。 WebMCP 是浏览器暴露给 AI 代理的一组接口,代理可以用它读取网站内容或调用网站功能。该站点有三层实现:放在 /.well-known 下的清单文件,构建时生成的 JSON 端点,以及通过 document.modelContext 注册的工具。 作者借此展示静态站点也可以直接面向 AI 代理提供结构化数据,而不需要后端服务。
评论点赞收藏29 天前

HTTP 缓存分区:同一张图,被下载了两次

跨站点 iframe 与父页面请求同一张图时,Chrome 会下载两次,Firefox 和 Safari 各下载一次。原因在缓存键(cache key)上:Chrome 把缓存按来源(origin)和分区信息隔离,iframe 和父页所在的分区不同,缓存键就不同,即使资源 URL 相同也不会命中同一缓存条目。 共享分区只是缓存键的组成部分,不能保证两个请求落到同一个桶里。文章提出 Cross-Origin Storage 作为缓解方案,让浏览器为跨站点资源共享更统一的缓存空间,以减少重复下载。
评论点赞收藏51 天前

La ventana móvil de 28 días de CrUX

Cómo funciona de verdad la ventana móvil de 28 días de CrUX, qué publica cada fuente y por qué el p75 tarda tanto en moverse aunque los datos solo tengan dos días de retraso.
评论点赞收藏65 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。