<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Leo’s Blog</title>
        <link>https://leolin66.top/</link>
        <description>無限進步💪</description>
        <lastBuildDate>Wed, 05 Aug 2026 16:19:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-CN</language>
        <copyright>All rights reserved 2026, leolin</copyright>
        <item>
            <title><![CDATA[Env Guard：让浏览器一眼分清生产、测试和开发环境]]></title>
            <link>https://leolin66.top/article/env_guard</link>
            <guid>https://leolin66.top/article/env_guard</guid>
            <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[env_guard]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-3b3667537982803bb4c9e4fff9d0db6c"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-3b36675379828084b7bbe8a536774ce6" data-id="3b36675379828084b7bbe8a536774ce6"><span><div id="3b36675379828084b7bbe8a536774ce6" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b36675379828084b7bbe8a536774ce6" title="Env Guard：让浏览器一眼分清生产、测试和开发环境"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">Env Guard：让浏览器一眼分清生产、测试和开发环境</span></span></h2><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3b366753798280b0b575d3ca6fb12505"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img src="https://i-blog.csdnimg.cn/img_convert/3409a9561e8c3ede4b07b130918a1460.png?spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0&amp;t=3b366753-7982-80b0-b575-d3ca6fb12505" alt="外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3b36675379828092813bc71bee75d9d0"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img src="https://i-blog.csdnimg.cn/img_convert/80e220593b6bf93b8ef60f443b7e3a96.png?spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0#pic_center&amp;t=3b366753-7982-8092-813b-c71bee75d9d0" alt="在这里插入图片描述" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3b3667537982800aa764c076756684b0"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img src="https://i-blog.csdnimg.cn/img_convert/65b6c726487d2544f5aa9782ed03193b.png?spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0#pic_center&amp;t=3b366753-7982-800a-a764-c076756684b0" alt="在这里插入图片描述" loading="lazy" decoding="async"/></div></figure><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b3667537982809b8565f64e06e54b60" data-id="3b3667537982809b8565f64e06e54b60"><span><div id="3b3667537982809b8565f64e06e54b60" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b3667537982809b8565f64e06e54b60" title="写在前面"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">写在前面</span></span></h3><div class="notion-text notion-block-3b366753798280199664ea05831d8f0b">做后端、测试或者运维的朋友，应该都经历过这样一幕：</div><div class="notion-text notion-block-3b366753798280ef940ac5b6d49257f8">你以为自己在测试环境里点了一个删除按钮，结果页面跳了一下，URL 看起来差别不大，但其实是<b>生产环境</b>。</div><div class="notion-text notion-block-3b36675379828064b257d798da6b4324">这种“环境误操作”，轻则浪费排查时间，重则直接出事故。很多时候并不是不认真，而是<b>页面长得太像，地址栏又一眼看不准</b>。</div><div class="notion-text notion-block-3b36675379828091910fd6e900dbc671">为了解决这个痛点，我给自己写了一个 Chrome 扩展：<b>Env Guard</b>。它会按你配置的 URL 规则，在页面上方自动挂一个醒目的环境标记，比如“生产环境”“测试环境”“开发环境”，颜色、透明度、位置都能自己调，拖到哪就停在哪。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b3667537982805f81d6ee927ff6a75d" data-id="3b3667537982805f81d6ee927ff6a75d"><span><div id="3b3667537982805f81d6ee927ff6a75d" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b3667537982805f81d6ee927ff6a75d" title="这是什么"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">这是什么</span></span></h3><div class="notion-text notion-block-3b366753798280ab9450f4e538e08488">Env Guard 是一个 Chrome 浏览器扩展，主要面向需要频繁切换多个环境的用户，帮助你在打开一个页面时，<b>一眼看清楚当前是哪种环境</b>，降低误操作生产环境数据的风险。</div><div class="notion-text notion-block-3b3667537982805c92f9f7dae363c0ca">它的核心理念很简单：</div><blockquote class="notion-quote notion-block-3b366753798280c0a72ef09dcb2ed447"><div>环境是重要的上下文，不应该只藏在 URL 后面。</div></blockquote><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b36675379828028b3b9d20d45825897" data-id="3b36675379828028b3b9d20d45825897"><span><div id="3b36675379828028b3b9d20d45825897" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b36675379828028b3b9d20d45825897" title="核心功能"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">核心功能</span></span></h3><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3b366753798280c895b9ec46072d140b"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img src="https://i-blog.csdnimg.cn/img_convert/ea2499f35f3009c879fa6b87af82d285.png?spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0#pic_center&amp;t=3b366753-7982-80c8-95b9-ec46072d140b" alt="在这里插入图片描述" loading="lazy" decoding="async"/></div></figure><ul class="notion-list notion-list-disc notion-block-3b36675379828016a26cfe3176540907"><li><b>按 URL 自动识别环境</b>：根据配置的 URL 匹配规则，自动判断当前页面属于哪个环境。</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280949e11da09d1b75008"><li><b>自定义环境名称和颜色</b>：生产环境、测试环境、开发环境，或者你自己定义的任何环境名，都可以。</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280f89cb9c74167077368"><li><b>透明度可调</b>：标记背景支持透明度调节，在不遮挡业务的同时依然显眼。</li></ul><ul class="notion-list notion-list-disc notion-block-3b36675379828001a15afd45e4c53a48"><li><b>默认位置可配</b>：支持左上、顶部居中、右上、左中、居中、右中、左下、底部居中、右下九宫格位置。</li></ul><ul class="notion-list notion-list-disc notion-block-3b3667537982806382f3ececccdb6533"><li><b>字体大小可调</b>：从 12 到 80 px，按屏幕和习惯自己调。</li></ul><ul class="notion-list notion-list-disc notion-block-3b36675379828092a9b1fd1347051a72"><li><b>支持正则匹配</b>：URL 匹配字段支持正则表达式，写错了会回退到普通包含匹配，不至于直接失效。</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280c0b803d0f09badf405"><li><b>自由拖拽</b>：标记可以直接在页面上拖动，避开遮挡内容的区域。</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280a18f52fd5830eae234"><li><b>记住拖拽位置</b>：拖动后的位置会自动保存，下次命中同一条规则时会自动恢复。</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280a59b97f14ec8c93a6d"><li><b>SPA 友好</b>：监听前端路由变化，URL 切换后会立刻重新判断环境标记，不用手动刷新。</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280d0a6abdb6c0282093d"><li><b>规则测试</b>：配置页内置 URL 测试框，输入地址就能看到命中哪条规则。</li></ul><ul class="notion-list notion-list-disc notion-block-3b36675379828099918bce8c8e987cd2"><li><b>导入/导出配置</b>：支持 JSON 导入导出，换电脑或者团队内部分享都很方便。</li></ul><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b366753798280d0b5e5d3fd625823f5" data-id="3b366753798280d0b5e5d3fd625823f5"><span><div id="3b366753798280d0b5e5d3fd625823f5" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b366753798280d0b5e5d3fd625823f5" title="使用场景"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">使用场景</span></span></h3><div class="notion-text notion-block-3b3667537982809ba98af71c30808109">举几个我自己用下来最常见的场景：</div><ol start="1" class="notion-list notion-list-numbered notion-block-3b366753798280d9ac28f753251e2af0" style="list-style-type:decimal"><li><b>多套环境并行</b>：同时有 <code class="notion-inline-code">prod.xxx.com</code>、<code class="notion-inline-code">staging.xxx.com</code>、<code class="notion-inline-code">dev.xxx.com</code>，一眼分清。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-3b366753798280aa9602ea7e105b3f68" style="list-style-type:decimal"><li><b>本地开发</b>：用 <code class="notion-inline-code">localhost</code>、<code class="notion-inline-code">127.0.0.1</code> 区分本地开发版本。</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-3b366753798280059ed2d4e95ff6a858" style="list-style-type:decimal"><li><b>内网测试</b>：用 IP 或特定子域名标识测试环境。</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-3b3667537982800ca5f6c9597c349eab" style="list-style-type:decimal"><li><b>灰度环境</b>：自定义一个“预发环境”标记，单独配色。</li></ol><ol start="5" class="notion-list notion-list-numbered notion-block-3b366753798280e58b17c99601025ce9" style="list-style-type:decimal"><li><b>演示场景</b>：录屏或对外演示时，避免误打开生产数据。</li></ol><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b366753798280bd909cf04c7f330c5e" data-id="3b366753798280bd909cf04c7f330c5e"><span><div id="3b366753798280bd909cf04c7f330c5e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b366753798280bd909cf04c7f330c5e" title="安装方式"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">安装方式</span></span></h3><ol start="1" class="notion-list notion-list-numbered notion-block-3b3667537982808cb07ee7f1275100b8" style="list-style-type:decimal"><li>从 GitHub Release 下载最新的 <code class="notion-inline-code">Env_Guard.zip</code>。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-3b366753798280d694f6ee1cafb6796b" style="list-style-type:decimal"><li>解压到任意目录。</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-3b36675379828071bd43ec5fa4c40018" style="list-style-type:decimal"><li>打开 Chrome，访问 <code class="notion-inline-code">chrome://extensions/</code>。</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-3b366753798280e9ab15c1f563fcaaef" style="list-style-type:decimal"><li>打开右上角的 <b>开发者模式</b>。</li></ol><ol start="5" class="notion-list notion-list-numbered notion-block-3b3667537982803cb470d236573866ce" style="list-style-type:decimal"><li>点击 <b>加载已解压的扩展程序</b>。</li></ol><ol start="6" class="notion-list notion-list-numbered notion-block-3b3667537982809a84cef0e9968520fb" style="list-style-type:decimal"><li>选择刚才解压出来的目录即可。</li></ol><div class="notion-text notion-block-3b366753798280c9abd4f714f3dcca72">如果你是开发者，也可以直接克隆仓库：</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b36675379828045a885e26191fc26bc" data-id="3b36675379828045a885e26191fc26bc"><span><div id="3b36675379828045a885e26191fc26bc" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b36675379828045a885e26191fc26bc" title="配置示例"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">配置示例</span></span></h3><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3b3667537982805dba14e22934330bab"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img src="https://i-blog.csdnimg.cn/img_convert/5daf513d45f98cb2298592a0cbce6b82.png?spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0#pic_center&amp;t=3b366753-7982-805d-ba14-e22934330bab" alt="在这里插入图片描述" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-3b366753798280e3ab24dd4011c381ae">打开扩展的“选项”页面，你会看到一张规则表，每条规则包含：</div><table class="notion-simple-table notion-block-3b3667537982804cb436d0c857fac433"><tbody><tr class="notion-simple-table-row notion-simple-table-header-row notion-block-3b36675379828020bd6de70dbc948fc0"><td class="" style="width:120px"><div class="notion-simple-table-cell">字段</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">说明</div></td></tr><tr class="notion-simple-table-row notion-block-3b366753798280c8a208cd51974c2d88"><td class="" style="width:120px"><div class="notion-simple-table-cell">启用</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">是否启用这条规则</div></td></tr><tr class="notion-simple-table-row notion-block-3b366753798280698334ef8a72a39351"><td class="" style="width:120px"><div class="notion-simple-table-cell">名称</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">页面上显示的环境名，比如“生产环境”</div></td></tr><tr class="notion-simple-table-row notion-block-3b36675379828028863ada18ec8fb2ef"><td class="" style="width:120px"><div class="notion-simple-table-cell">URL 匹配</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">用于匹配页面 URL，支持正则</div></td></tr><tr class="notion-simple-table-row notion-block-3b3667537982807a95bfe49160fc0156"><td class="" style="width:120px"><div class="notion-simple-table-cell">颜色</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">标记背景颜色</div></td></tr><tr class="notion-simple-table-row notion-block-3b3667537982806690fbeb04b1fc2173"><td class="" style="width:120px"><div class="notion-simple-table-cell">透明度</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">标记背景透明度</div></td></tr><tr class="notion-simple-table-row notion-block-3b366753798280ee8e0afd778463fb49"><td class="" style="width:120px"><div class="notion-simple-table-cell">默认位置</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">首次显示的位置</div></td></tr><tr class="notion-simple-table-row notion-block-3b36675379828037bc2ee365bc142484"><td class="" style="width:120px"><div class="notion-simple-table-cell">字体大小</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">标记文字大小</div></td></tr></tbody></table><div class="notion-text notion-block-3b366753798280b3bdb1c8dcb94948ac">默认会带三条示例规则：</div><ul class="notion-list notion-list-disc notion-block-3b366753798280838618c29f9209b9d6"><li><code class="notion-inline-code">https://www.example.com/</code>（生产环境）</li></ul><ul class="notion-list notion-list-disc notion-block-3b36675379828018be52f0e39323fa9d"><li><code class="notion-inline-code">https://test.example.com/</code>（测试环境）</li></ul><ul class="notion-list notion-list-disc notion-block-3b3667537982809abff9dcddaa8c4da4"><li><code class="notion-inline-code">localhost|127.0.0.1|dev.example.com</code>（开发环境）</li></ul><div class="notion-text notion-block-3b36675379828071a2f0f62c73623f29">你可以基于这些示例改成自己的项目地址。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b36675379828087b616c864e2cce89d" data-id="3b36675379828087b616c864e2cce89d"><span><div id="3b36675379828087b616c864e2cce89d" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b36675379828087b616c864e2cce89d" title="性能优化"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">性能优化</span></span></h3><div class="notion-text notion-block-3b366753798280fea7c1d2d6438931b8">之前拖动标记时会有点卡，主要原因有两个：</div><ol start="1" class="notion-list notion-list-numbered notion-block-3b36675379828056976cf23dead6432a" style="list-style-type:decimal"><li><code class="notion-inline-code">transform</code> 频繁重排。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-3b366753798280059aa0c924129cd710" style="list-style-type:decimal"><li>监听事件没有节流。</li></ol><div class="notion-text notion-block-3b366753798280cf81b7f9ba357dbcb0">这次重写之后做了几件事：</div><ul class="notion-list notion-list-disc notion-block-3b366753798280428461eeb1b05c40ef"><li>拖动过程统一改用 <code class="notion-inline-code">translate3d</code>。</li></ul><ul class="notion-list notion-list-disc notion-block-3b36675379828065bd2adf51777db5b3"><li>用 <code class="notion-inline-code">requestAnimationFrame</code> 合并位置更新。</li></ul><ul class="notion-list notion-list-disc notion-block-3b36675379828063a2a2e36ae09f1121"><li>用 <code class="notion-inline-code">pointer events</code> 统一鼠标/触控。</li></ul><div class="notion-text notion-block-3b3667537982805b9b7ee895f6bc53d1">实测下来，拖动手感顺滑多了，不再有掉帧感。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b366753798280e4aebaf0ba6fc29349" data-id="3b366753798280e4aebaf0ba6fc29349"><span><div id="3b366753798280e4aebaf0ba6fc29349" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b366753798280e4aebaf0ba6fc29349" title="隐私说明"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">隐私说明</span></span></h3><div class="notion-text notion-block-3b36675379828009a281ec62fe4d22bc">Env Guard 只做一件事：</div><blockquote class="notion-quote notion-block-3b3667537982805db359cb9dc8ece3de"><div>把配置和当前页面 URL 在本地做匹配，决定显示哪种环境标记。</div></blockquote><div class="notion-text notion-block-3b36675379828074b305c619fe0bbdd7">它<b>不会</b>：</div><ul class="notion-list notion-list-disc notion-block-3b366753798280bc9748ced75ccdee85"><li>上传任何页面内容</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280af880cd06935779b1e"><li>上传任何用户配置</li></ul><ul class="notion-list notion-list-disc notion-block-3b3667537982803d8243dba7eb332e37"><li>收集任何浏览历史</li></ul><ul class="notion-list notion-list-disc notion-block-3b366753798280bcbe7bdc6c12c7e1d4"><li>接入任何第三方服务</li></ul><div class="notion-text notion-block-3b366753798280149940c147d5ef3aef">所有规则、颜色、拖动位置都只保存在浏览器本地 <code class="notion-inline-code">chrome.storage.sync</code> 里。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-3b3667537982801f94c5ce020b025228" data-id="3b3667537982801f94c5ce020b025228"><span><div id="3b3667537982801f94c5ce020b025228" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3b3667537982801f94c5ce020b025228" title="写在最后"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">写在最后</span></span></h3><div class="notion-text notion-block-3b366753798280ffa780e1f58ba941fa">Env Guard 是一个非常“个人化”的小工具，它解决的问题很具体，但确实能减少一次又一次的“环境恍惚”。</div><div class="notion-text notion-block-3b3667537982804d977fe8934282977f">如果你也经常在多套环境之间来回切，欢迎试试看，反馈和建议都很欢迎。</div><div class="notion-text notion-block-3b366753798280918852c4020d2dbbfb">仓库地址：
<a class="notion-link" href="https://github.com/Linlei-dev/Env_Guard" target="_blank" rel="noopener noreferrer">https://github.com/Linlei-dev/Env_Guard</a></div><hr class="notion-hr notion-block-3b36675379828090ac50f6856db82589"/><div class="notion-text notion-block-3b366753798280bbb65ffaea55a10e59">如果你想看更详细的使用说明，可以继续看仓库 README；如果你想交流插件思路或者推荐类似的小工具，欢迎在评论区聊。</div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[jmeter之执行前置sql脚本踩坑]]></title>
            <link>https://leolin66.top/article/jmeter_notes</link>
            <guid>https://leolin66.top/article/jmeter_notes</guid>
            <pubDate>Tue, 28 Nov 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[jmeter http请求中执行前置sql脚本踩坑记录]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-15a61da0f0f5470d84ea2ce49e8a922a"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-blank notion-block-1fe6d092c9644cf68f266776507f97f9"> </div><div class="notion-callout notion-gray_background_co notion-block-1ec115e7ef34440d98d6e12c1432d85d"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="😀">😀</span></div><div class="notion-callout-text">这份笔记主要是记录自己使用前置sql脚本时踩的坑，配置JDBC预处理程序时变量名称没有填JDBC-Connection-Configuration中配置的连接池变量名，导致sql不执行的问题。</div></div><div class="notion-blank notion-block-7addfbe80650449587c43512f5799a33"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-b01666647ee845d293daba25cead3340" data-id="b01666647ee845d293daba25cead3340"><span><div id="b01666647ee845d293daba25cead3340" class="notion-header-anchor"></div><a class="notion-hash-link" href="#b01666647ee845d293daba25cead3340" title="📝 前置sql脚本"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 前置sql脚本</span></span></h2><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-e8cf3edabb564c5dbe0f6405828a6833" data-id="e8cf3edabb564c5dbe0f6405828a6833"><span><div id="e8cf3edabb564c5dbe0f6405828a6833" class="notion-header-anchor"></div><a class="notion-hash-link" href="#e8cf3edabb564c5dbe0f6405828a6833" title="操作步骤"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">操作步骤</span></span></h3><ul class="notion-list notion-list-disc notion-block-f0cdea57665f4c048ff4d8f48dcbfe9a"><li><b>首先在你要添加前置sql的请求上右键【添加】-【配置元件】-【JDBC-Connection-Configuration】</b></li></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3860b636f56c4aed86129a3f0079e566"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2Fa68205b9-f076-4809-bf92-35a01ffa27db%2F64CFEB86-8399-446b-849A-7D6966B106F5.png?table=block&amp;id=3860b636-f56c-4aed-8612-9a3f0079e566&amp;t=3860b636-f56c-4aed-8612-9a3f0079e566&amp;width=387.984375&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><ul class="notion-list notion-list-disc notion-block-0ad560fa0c07486c850ca629fe702389"><li><b>接下来配置JDBC-Connection-Configuration</b>
    这里我们只关注这个参数Variable name bound to pool（其他的参数可以自行查找教程解析），它是JDBC连接配置中的一个可选参数。
    它用于定义一个变量名，将数据库连接池绑定到该变量上。当你在 JDBC 连接配置中设置了 &quot;Variable Name&quot; 参数，并指定一个变量名时，JMeter 将创建一个数据库连接池，并将该连接池绑定到指定的变量上。
    这样，你就可以在其他地方使用该变量引用连接池，例如在 JDBC 请求中。通过将连接池绑定到变量名上，你可以在测试执行期间共享数据库连接池，以便在多个线程组或多个请求中重复使用连接池。这可以提高性能并减少数据库连接的开销。</li></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-09c376618c614e8b89bf2cf2f70d5c8c"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2Fe39e1484-d8c3-4c6a-98c8-6305a0442aff%2FUntitled.png?table=block&amp;id=09c37661-8c61-4e8b-89bf-2cf2f70d5c8c&amp;t=09c37661-8c61-4e8b-89bf-2cf2f70d5c8c&amp;width=388&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><ul class="notion-list notion-list-disc notion-block-3120ac7698bd414db49d45284ec59d97"><li><b>配置好数据库连接之后，再右键【添加】-【前置处理器】-【JDBC预处理程序】</b></li></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1891f14772fb4340a0445cd7c2aa9e62"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:624px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2F62ea25f9-d4c1-4fa2-bd07-91571ef560ca%2FUntitled.png?table=block&amp;id=1891f147-72fb-4340-a044-5cd7c2aa9e62&amp;t=1891f147-72fb-4340-a044-5cd7c2aa9e62&amp;width=624&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><ul class="notion-list notion-list-disc notion-block-15f4a1e44609436a91f8f5e87ee075d3"><li><b>接下来配置JDBC预处理程序
</b>这一步需要注意的就是我们上面配置JDBC-Connection-Configuration时的Variable name bound to pool参数，否则会连不上数据库，sql不会正确执行。</li></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-d7e352c118a14daa9331519b6ce085c6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2F694a3a47-3c34-4437-9186-b67274a12010%2FUntitled.png?table=block&amp;id=d7e352c1-18a1-4daa-9331-519b6ce085c6&amp;t=d7e352c1-18a1-4daa-9331-519b6ce085c6&amp;width=1079&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><ul class="notion-list notion-list-disc notion-block-f0ca0b9a894d470f837c69dafc9bfea4"><li>如果还是无法执行sql，可以检查一下是否装了mysql的jar包，可以到jmeter安装路径/lib中查看，如果没有，可以打开jmeter插件下载地址：<a class="notion-link" href="http://jmeter-plugins.org/" target="_blank" rel="noopener noreferrer">http://jmeter-plugins.org/</a>搜索后下载解压，将jar包放进lib目录下重启jmeter即可生效。
</li></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-22c55e790d0e4f3f9be321371184e790"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2F63d6b8ff-7ca9-43f5-8179-fa97d4f7c7eb%2FUntitled.png?table=block&amp;id=22c55e79-0d0e-4f3f-9be3-21371184e790&amp;t=22c55e79-0d0e-4f3f-9be3-21371184e790&amp;width=387.984375&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-1661e4a181ef44948864b70d0e5daf6e" data-id="1661e4a181ef44948864b70d0e5daf6e"><span><div id="1661e4a181ef44948864b70d0e5daf6e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1661e4a181ef44948864b70d0e5daf6e" title="📎 参考文章"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📎 参考文章</span></span></h2><ul class="notion-list notion-list-disc notion-block-92945a22103e4dc8a5cc9de2f79eece7"><li><a class="notion-link" href="https://www.automationdojos.com/how-to-do-database-testing-with-jmeter/" target="_blank" rel="noopener noreferrer">How To Do Database Testing with JMeter</a></li></ul><div class="notion-blank notion-block-034ea00aaadc423ba5cba5632467f9d4"> </div><div class="notion-callout notion-gray_background_co notion-block-62510cb73c1840a98722dba265947f1a"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[如何更新Fork的项目]]></title>
            <link>https://leolin66.top/article/how_to_update_fork_project</link>
            <guid>https://leolin66.top/article/how_to_update_fork_project</guid>
            <pubDate>Mon, 29 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[本文介绍了如何使用git更新github上fork的项目]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-daebc762a0934bf6902b925a3d2638a0"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-6240258299c846369b40a88ea6280dd2" data-id="6240258299c846369b40a88ea6280dd2"><span><div id="6240258299c846369b40a88ea6280dd2" class="notion-header-anchor"></div><a class="notion-hash-link" href="#6240258299c846369b40a88ea6280dd2" title="如何更新Fork的项目(需要一定git基础)"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">如何更新Fork的项目(需要一定git基础)</span></span></h2><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-e3ab46d1e99142dc9f14efb48bb96ce3"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2Fd0cecc17-89e8-46dd-a7ed-b5ce6bea19c4%2F%25E5%25A6%2582%25E4%25BD%2595%25E6%259B%25B4%25E6%2596%25B0fork%25E7%259A%2584%25E9%25A1%25B9%25E7%259B%25AE(%25E8%25BF%259B%25E9%2598%25B6%25E7%2589%2588)_(1).png?table=block&amp;id=e3ab46d1-e991-42dc-9f14-efb48bb96ce3&amp;t=e3ab46d1-e991-42dc-9f14-efb48bb96ce3&amp;width=790.984375&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><ul class="notion-list notion-list-disc notion-block-f6da47d714c742a599ad98125cd66e8b"><li>如何更新fork的项目</li><ul class="notion-list notion-list-disc notion-block-f6da47d714c742a599ad98125cd66e8b"><li>首先你需要fork大佬的原项目仓库得到你自己的仓库A</li><li>为仓库A新建一个deploy分支用于部署到vercel</li><ul class="notion-list notion-list-disc notion-block-3dcf604d40da49c68eacb295df269128"><li>在vercel中修改部署的分支为deploy</li><ul class="notion-list notion-list-disc notion-block-8ef5f0abbae64b008e72396acba1f7ad"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-878445ce31f944229bb4aff5bc155715"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2F9d688646-778a-4f3e-9782-433f82121e04%2Fpo_diagram.png?table=block&amp;id=878445ce-31f9-4422-9bb4-aff5bc155715&amp;t=878445ce-31f9-4422-9bb4-aff5bc155715&amp;width=706.96875&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure></ul></ul><li>然后将你的A仓库clone到本地</li><ul class="notion-list notion-list-disc notion-block-0c88ef2660934193adb416551339d932"><li>先初始化本地仓库</li><ul class="notion-list notion-list-disc notion-block-6f9b128b3d0943f2b42068fddd81c475"><ol start="1" class="notion-list notion-list-numbered notion-block-b9d98fa3746c4ee6a60704927707ff86" style="list-style-type:decimal"><li>在你本地新建一个文件夹</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-62786e9a80ae42ef8bcd76a1c7a09396" style="list-style-type:decimal"><li>鼠标右键git bash here</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-493fba2d89e44ba9919df3e8f56c81c7" style="list-style-type:decimal"><li>在git命令窗口中执行git init</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-bf42abd44ac94de3b914f6001c902ef5" style="list-style-type:decimal"><li>执行git clone https://github.com/XXXX/NotionNext.git   后面的链接为A仓库的https链接</li></ol></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-995f15fce67947f199bfbcabfc35a15f"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdfbe785d-3dad-431c-a594-a4273ea510f0%2F9ec9838a-4c0f-4684-ad57-68a940a11995%2Fpo_diagram_(1).png?table=block&amp;id=995f15fc-e679-47f1-99bf-bcabfc35a15f&amp;t=995f15fc-e679-47f1-99bf-bcabfc35a15f&amp;width=734.96875&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure></ul><li>克隆完成后，执行git checkout deploy创建一个本地的deploy分支</li><li>平时自己需要开发或配置代码，则切换到deploy分支上进行修改</li><li>修改后将修改内容推送到远程仓库的deploy分支上，即可完成你自己内容的更新</li><ul class="notion-list notion-list-disc notion-block-20a7388a0ead4d99aa018495a583c36f"><ol start="1" class="notion-list notion-list-numbered notion-block-6a98d6e225a049b583fb3f42d853982d" style="list-style-type:decimal"><li>git add 你修改的文件    将你修改的内容添加到暂存区</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-f46b446531be4231ab8ce848f13104d2" style="list-style-type:decimal"><li>git commit -m &#x27;更新了XXX&#x27;   将暂存区的文件提交到本地的deploy分支</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-ff2865daf10d4e1982d66f0c22d9a7a7" style="list-style-type:decimal"><li>git push oringin deploy:deploy    将本地deploy分支推送到远程仓库的deploy分支</li></ol></ul><li>如果大佬的项目有更新，那么我们只需要在github上A仓库的main分支上点击Sync fork将你的仓库更新为与大佬的一致</li><li>这时候本地切换到本地的main分支，并将远程main分支的内容同步到本地main分支</li><ul class="notion-list notion-list-disc notion-block-54fbb10c45be4a9992bc04c4e9d9c43f"><ol start="1" class="notion-list notion-list-numbered notion-block-b541d322180242bfb6434e7e59c24d4e" style="list-style-type:decimal"><li>git checkout main</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1b589d99110f4dbbbd2b4eaf575914c2" style="list-style-type:decimal"><li>git pull   将远程main分支的内容下载并合并到本地main分支</li></ol></ul><li>然后切换到本地deploy分支，将main分支的内容合并到deploy分支，解决冲突（如有的话），推送到远程deploy分支即可完成更新</li><ul class="notion-list notion-list-disc notion-block-53772a803ebc4686a46e06217517e996"><ol start="1" class="notion-list notion-list-numbered notion-block-f8832979e9dd42398d9575f405c06133" style="list-style-type:decimal"><li>git checkout deploy</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-b7958b0d62834fe1a547b5f65dca155d" style="list-style-type:decimal"><li>git merge main</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-f755ec89581d42489298cc3b937afb93" style="list-style-type:decimal"><li>git add .  将所有修改添加到暂存区</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-3243bf3baf5d4074988e316345e95ac6" style="list-style-type:decimal"><li>git commit -m &#x27;合并main分支的修改到deploy分支&#x27;</li></ol><ol start="5" class="notion-list notion-list-numbered notion-block-ad7a86a2c78046e3b363b59ddb34eb38" style="list-style-type:decimal"><li>git push origin deploy:deploy   将本地deploy推送到远程deploy分支（<span class="notion-red">如果失败，记得先 git pull origin deploy 将远程 deploy 分支最新版拉到本地的 deploy 分支，然后修改冲突后再推送</span>） </li></ol></ul><li>推送成功后，vercel会自动重新部署项目，部署完成即可完成更新</li></ul></ul><div class="notion-blank notion-block-314bbef701eb484a898e9bf08331d563"> </div><div class="notion-text notion-block-8dd2333365914b9d8f2e03c8a466eb92">点击下方下载xmind文件：</div><div class="notion-file notion-block-f2b17baca24e48169c6cef5856574aa8"><a class="notion-file-link" href="https://file.notion.so/f/f/dfbe785d-3dad-431c-a594-a4273ea510f0/f2b17e7c-accd-424b-999d-acac337e18a0/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%96%B0fork%E7%9A%84%E9%A1%B9%E7%9B%AE(%E8%BF%9B%E9%98%B6%E7%89%88)_(1).xmind?table=block&amp;id=f2b17bac-a24e-4816-9c6c-ef5856574aa8&amp;spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0&amp;expirationTimestamp=1785974400000&amp;signature=Jx6ANn-xu291UJ46AyZlnpo__gPjPwyUtZ34kN87EmI" target="_blank" rel="noopener noreferrer"><svg class="notion-file-icon" viewBox="0 0 30 30"><path d="M22,8v12c0,3.866-3.134,7-7,7s-7-3.134-7-7V8c0-2.762,2.238-5,5-5s5,2.238,5,5v12c0,1.657-1.343,3-3,3s-3-1.343-3-3V8h-2v12c0,2.762,2.238,5,5,5s5-2.238,5-5V8c0-3.866-3.134-7-7-7S6,4.134,6,8v12c0,4.971,4.029,9,9,9s9-4.029,9-9V8H22z"></path></svg><div class="notion-file-info"><div class="notion-file-title">如何更新fork的项目(进阶版) (1).xmind</div><div class="notion-file-size">208.9KB</div></div></a></div><div class="notion-blank notion-block-e7eaf842126a4df6b2de7a9dbc23bbc3"> </div><div class="notion-callout notion-gray_background_co notion-block-61c81d0f95204b948077cdc08de7dcc3"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[解决使用小火箭代理后被银行app检测的问题]]></title>
            <link>https://leolin66.top/article/solve_shadowrocket_bank_agent_detection</link>
            <guid>https://leolin66.top/article/solve_shadowrocket_bank_agent_detection</guid>
            <pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[解决使用小火箭代理后被银行app检测的问题]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-2766675379828025991ee451c343114b"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-2766675379828116a128d61973928df9" data-id="2766675379828116a128d61973928df9"><span><div id="2766675379828116a128d61973928df9" class="notion-header-anchor"></div><a class="notion-hash-link" href="#2766675379828116a128d61973928df9" title="解决使用小火箭代理后被银行app检测的问题"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">解决使用小火箭代理后被银行app检测的问题</span></span></h2><div class="notion-text notion-block-2766675379828130b4ccd5cd74acdcb5">     目前使用小火箭，农业银行app老是被检测到有代理打不开，即使代理规则把这些 app 的用户代理全部划为直连也会提示代理，甚至代理规则直接直连也会提示代理。于是上网找解决办法，在v2ex论坛上看见一个哥们儿给的解决方案，使用之后发现确实有效果，故记录一下。</div><div class="notion-text notion-block-276667537982801281c0ead6d409d41c">解决方式：</div><ol start="1" class="notion-list notion-list-numbered notion-block-2766675379828023b285cde4652d4550" style="list-style-type:decimal"><li>打开小火箭</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-27666753798280f79306d103824aabcf" style="list-style-type:decimal"><li>进入设置-代理 </li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-27666753798280c2bd33f88a23266df2" style="list-style-type:decimal"><li>代理类型 选择 none</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-27666753798280b5b628e64b5394ef40" style="list-style-type:decimal"><li>完美解决！</li></ol><div class="notion-text notion-block-27666753798280dd8f82e5c0118f4fd4">原论坛内容：<a class="notion-link" href="https://v2ex.com/t/802669" target="_blank" rel="noopener noreferrer">关于 ios 上 app 检测代理 - V2EX</a></div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-27666753798280788a01f2fcfc0bd01f"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://pic1.imgdb.cn/item/68d0fe89c5157e1a8825ecb6.png?spaceId=dfbe785d-3dad-431c-a594-a4273ea510f0&amp;t=27666753-7982-8078-8a01-f2fcfc0bd01f" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-callout notion-gray_background_co notion-block-27666753798281cba4b9e23ef88a356f"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[jira与钉钉通知脚本]]></title>
            <link>https://leolin66.top/article/jira_dingding_reminder</link>
            <guid>https://leolin66.top/article/jira_dingding_reminder</guid>
            <pubDate>Thu, 13 Jun 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-fd2ef3d2a21345b493edf33cb69d36db"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-blank notion-block-db768e7e8d9e4cde9ce9b9b001ec2956"> </div><div class="notion-callout notion-gray_background_co notion-block-df52400b27a74b0e94b352e9d7af4c00"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Selenium入门]]></title>
            <link>https://leolin66.top/article/selenium_demo</link>
            <guid>https://leolin66.top/article/selenium_demo</guid>
            <pubDate>Mon, 30 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Selenium入门]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-6400267bf3484a9e8100225d8d5b1db8"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-111667537982808aa095e7226ae4fbde" data-id="111667537982808aa095e7226ae4fbde"><span><div id="111667537982808aa095e7226ae4fbde" class="notion-header-anchor"></div><a class="notion-hash-link" href="#111667537982808aa095e7226ae4fbde" title="Selenium UI自动化入门"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">Selenium UI自动化入门</span></span></h2><div class="notion-text notion-block-11166753798280a99880e9b8b074af94">在软件开发中，UI自动化测试是一项至关重要的实践，它可以帮助我们验证应用程序的用户界面行为是否符合预期。Selenium是一种流行的自动化测试工具，用于执行UI自动化测试。本教程将介绍如何使用Selenium进行UI自动化测试，并提供一个简单的示例代码。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-111667537982806584c3d645eaa4a8ca" data-id="111667537982806584c3d645eaa4a8ca"><span><div id="111667537982806584c3d645eaa4a8ca" class="notion-header-anchor"></div><a class="notion-hash-link" href="#111667537982806584c3d645eaa4a8ca" title="什么是Selenium？"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">什么是Selenium？</span></span></h3><div class="notion-text notion-block-11166753798280eb89a9c31c1b2a06d7">Selenium是一个用于自动化Web应用程序测试的工具，支持多种编程语言。它可以模拟用户在浏览器中的操作，如点击按钮、填写表单等，以验证应用程序的行为。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-111667537982808091eacf9db9c54e1e" data-id="111667537982808091eacf9db9c54e1e"><span><div id="111667537982808091eacf9db9c54e1e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#111667537982808091eacf9db9c54e1e" title="准备工作"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">准备工作</span></span></h3><div class="notion-text notion-block-111667537982800c9499e28a39d732db">在开始之前，确保你已经安装了以下软件：</div><ul class="notion-list notion-list-disc notion-block-111667537982809f9308d972edcae16b"><li>Python编程语言</li></ul><ul class="notion-list notion-list-disc notion-block-111667537982805ebe93f6393c8e38d5"><li>Selenium库</li></ul><ul class="notion-list notion-list-disc notion-block-11166753798280e9a583d808257dae08"><li>Chrome浏览器</li></ul><ul class="notion-list notion-list-disc notion-block-111667537982808ba7a8ffbf7197c1c3"><li>ChromeDriver</li></ul><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1116675379828045a58bf09f9b61dfc3" data-id="1116675379828045a58bf09f9b61dfc3"><span><div id="1116675379828045a58bf09f9b61dfc3" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1116675379828045a58bf09f9b61dfc3" title="编写第一个Selenium测试"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">编写第一个Selenium测试</span></span></h3><div class="notion-text notion-block-11166753798280558030f5e8d066bc79">下面是一个简单的示例，演示如何使用Selenium打开一个网页并验证标题：</div><div class="notion-callout notion-gray_background_co notion-block-c7f3a2bff55347f58ea73e7fb7327907"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
    </channel>
</rss>