<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>前端 on 小程的研发日常</title><link>https://zhelin.me/tag/fe/</link><description>Recent content in 前端 on 小程的研发日常</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 11 Sep 2025 23:08:11 +0800</lastBuildDate><atom:link href="https://zhelin.me/tag/fe/index.xml" rel="self" type="application/rss+xml"/><item><title>snapDOM——新一代网页截图 PDF 生成方案</title><link>https://zhelin.me/post/8f412a886b1dffcb/</link><pubDate>Thu, 11 Sep 2025 23:08:11 +0800</pubDate><guid>https://zhelin.me/post/8f412a886b1dffcb/</guid><description>&lt;p&gt;在前端开发里，“DOM 截图 → 图片/文件导出” 是一个高频需求场景。无论是营销海报、报表导出、还是社交分享卡片，截图工具的体验直接决定了用户感受。&lt;/p&gt;</description></item><item><title>TypeScript：Aho–Corasick算法实现敏感词过滤</title><link>https://zhelin.me/post/83e19b1a7821ce77/</link><pubDate>Fri, 07 Jun 2019 15:10:43 +0800</pubDate><guid>https://zhelin.me/post/83e19b1a7821ce77/</guid><description>&lt;p&gt;敏感词过滤应该是许多后端同事经常会遇到的需求，无论是评论、弹幕、文章，都需要做敏感词过滤处理来规避风险。在前端开发中，使用replace函数来替换字符串是我们的常规操作。在这之前我思考过如果用JavaScript来实现敏感词过滤该怎么做。在学习过程中，接触到了Trie树，瞬间有一种拨开云雾见青天的感觉。&lt;/p&gt;</description></item><item><title>再谈JavaScript作用域</title><link>https://zhelin.me/post/7b09e2961e9a9741/</link><pubDate>Sun, 22 Apr 2018 13:12:09 +0800</pubDate><guid>https://zhelin.me/post/7b09e2961e9a9741/</guid><description>&lt;p&gt;作用域，这个词在编程界经常能听到看到，每一个程序员几乎都有被问到过。在前端圈，面试JavaScript相关知识，这可以算说是一个非常基础的问题了。但早年间我长期陷入了一种“只可意会不可言传”的地步，我不知道是不是有许多小伙伴与我曾经有一样的经历，所以我就抽时间把书本中看到的东西整理了一下。把提炼的东西分享给大家。&lt;/p&gt;</description></item><item><title>CSS3硬件加速技巧</title><link>https://zhelin.me/post/2be74cd510d0545c/</link><pubDate>Sat, 18 Feb 2017 10:22:36 +0800</pubDate><guid>https://zhelin.me/post/2be74cd510d0545c/</guid><description>&lt;p&gt;使用3D硬件加速提升动画性能时，最好给元素增加一个z-index属性，人为干扰复合层的排序，可以有效减少chrome创建不必要的复合层，提升渲染性能，移动端优化效果尤为明显。&lt;/p&gt;</description></item><item><title>《JavaScript设计模式》学习笔记——发布订阅者模式</title><link>https://zhelin.me/post/5356825055f9b3a1/</link><pubDate>Thu, 22 Dec 2016 13:16:19 +0800</pubDate><guid>https://zhelin.me/post/5356825055f9b3a1/</guid><description>&lt;h2 id="发布订阅模式"&gt;发布订阅模式&lt;/h2&gt;&#10;&lt;p&gt;因前段时间业务需要使用到了观察者（Observer）模式，同时在使用的过程中，让我想起了Publish/Subscribe（发布/订阅）模式。起初感觉这两种模式非常相似，但是细细观察你会发现，Observer模式要求希望接收到主题通知的观察者（或对象）必须订阅内容改变事件。&lt;/p&gt;</description></item><item><title>从画一个圆开始——CSS圆角探秘（二）</title><link>https://zhelin.me/post/3513d4c34d05f768/</link><pubDate>Mon, 31 Oct 2016 07:58:19 +0800</pubDate><guid>https://zhelin.me/post/3513d4c34d05f768/</guid><description>&lt;p&gt;在上一篇《&lt;a href="https://zhelin.me/post/16a0ba1f57202a18/"&gt;从画一个圆开始——CSS圆角探秘（一）&lt;/a&gt;》中，我们重新了解border-radius的一些属性。我们画好了正圆，了解了圆角，难道border-radius的功能仅限于此吗？&lt;/p&gt;&#10;&lt;p&gt;我想并不是，就如同在上一篇文章中border-radius完美结合box-shodow形成多重圆角边框一样。也许还有其他属性与它结合，会产生不一样的效果与功能。&lt;/p&gt;</description></item><item><title>从画一个圆开始——CSS圆角探秘（一）</title><link>https://zhelin.me/post/16a0ba1f57202a18/</link><pubDate>Wed, 14 Sep 2016 23:35:07 +0800</pubDate><guid>https://zhelin.me/post/16a0ba1f57202a18/</guid><description>&lt;p&gt;这篇文章能够成型因为两个原因。一是团队内部的分享会，二是CSS魔法在2015年CSS Conf上的一次分享。也因为魔法哥的这次分享，深深的勾起了我对CSS深入了解的欲望。也促成了这篇文章的成型。&lt;/p&gt;</description></item></channel></rss>