<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[布里渊区]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cctvcqupt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cctvcqupt]]></copyright><item><title><![CDATA[http缓存]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/151082345</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/151082345</guid><author>cctvcqupt</author><pubDate>Mon, 01 Sep 2025 21:19:26 +0800</pubDate><description><![CDATA[静态资源 → 强缓存 + 文件名 hashHTML → 协商缓存API → 按需策略（no-cache / private）公共数据 → CDN + public 缓存要不要我帮你画一张HTTP 缓存决策流程图（强缓存 → 协商缓存 → 新请求），这样你在面试或工作解释时更直观？]]></description><category></category></item><item><title><![CDATA[HTTP/2 多路复用]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/151075775</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/151075775</guid><author>cctvcqupt</author><pubDate>Mon, 01 Sep 2025 17:34:45 +0800</pubDate><description><![CDATA[容易出现：前面的响应慢，后面的都得等。于是我们过去会做域名分片、雪碧图、打大包等“曲线救国”。一个域名，只建立 1 个在这一个TCP连接上，并行承载，请求与响应被切成**帧（frame）**交错传输。：多条流并行、互不抢道（在 HTTP 层解决 HOL）。：大幅降低重复 Header 的体积。：可标注哪些流更重要（实际实现已简化，但仍可通过“优先级提示”影响调度）。：浏览器里基本都走 TLS，协商到 h2。注意：HTTP/2 仍然跑在 TCP 上，。]]></description><category></category></item><item><title><![CDATA[前端页面性能优化]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/151072929</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/151072929</guid><author>cctvcqupt</author><pubDate>Mon, 01 Sep 2025 15:44:29 +0800</pubDate><description><![CDATA[前端页面性能优化，可以分为和两个维度来理解。]]></description><category></category></item><item><title><![CDATA[前端异常监控，性能监控，埋点，怎么做的]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/150962694</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/150962694</guid><author>cctvcqupt</author><pubDate>Thu, 28 Aug 2025 21:21:18 +0800</pubDate><description><![CDATA[你想做的是一个（JS 报错、资源加载错误、Promise 未捕获异常）（白屏时间、首屏时间、页面加载时间、TTFB、FCP、LCP、CLS 等指标）（PV/UV、路由变化、用户操作）（采集到的数据怎么上报到监控服务）（监控后台分析、日志存储、异常告警）下面我给你出一份。]]></description><category></category></item><item><title><![CDATA[非对称加密应用]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/150950616</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/150950616</guid><author>cctvcqupt</author><pubDate>Thu, 28 Aug 2025 14:05:32 +0800</pubDate><description><![CDATA[典型应用：软件分发场景中，签名和验签 （作者发布软件前，用私钥对软件进行签名，发布的开源软件，通常会提供公钥出去，用户可以用公钥对下载得软件进行验签，确保软件没有被更改。或者使用权威CA机构，数字签名证书颁发机构，颁发得证书进行签名，这样，系统会在安装软件时，自动验签）：协商对称密钥（如 ECDH）, 然后用对称加密高速传输。：证明是某人发的、内容未改（私钥签名+公钥验签）。再用对称算法（AES/ChaCha20）加大数据。：公钥（公开给任何人）和私钥（自己保管）。→ 任何人用 A 的。]]></description><category></category></item><item><title><![CDATA[20250826--inter]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/150921025</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/150921025</guid><author>cctvcqupt</author><pubDate>Wed, 27 Aug 2025 11:24:34 +0800</pubDate><description><![CDATA[2、怎么避免跨站脚本攻击，包括还有其他的一些web安全，怎么做的。3、前端报错的监控，页面加载时间等监控，怎么做的，做了哪些。5、http 和 https 的区别。6、页面性能优化，加载速度等。4、vue的响应式原理。1、非对称加密的应用。]]></description><category></category></item><item><title><![CDATA[React 的 Fiber 架构，是如何将 Diff 分片执行的？]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/145998184</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/145998184</guid><author>cctvcqupt</author><pubDate>Mon, 03 Mar 2025 20:11:35 +0800</pubDate><description><![CDATA[Fiber 是 React 内部的一种数据结构，可以看作是对虚拟 DOM 树的重构。]]></description><category></category></item><item><title><![CDATA[vue 和 react 底层采用的 diff 算法的区别]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/145998089</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/145998089</guid><author>cctvcqupt</author><pubDate>Mon, 03 Mar 2025 20:09:25 +0800</pubDate><description><![CDATA[Vue 3 和 React 在底层 Diff 算法上的实现确实有一些区别，主要体现在设计理念、性能优化策略以及具体实现方式上。]]></description><category></category></item><item><title><![CDATA[艾印 AY-D5811 打印机，手机蓝牙连不上]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/143835586</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/143835586</guid><author>cctvcqupt</author><pubDate>Sun, 17 Nov 2024 17:47:22 +0800</pubDate><description><![CDATA[【代码】艾印 AY-D5811 打印机，手机蓝牙连不上。]]></description><category></category></item><item><title><![CDATA[函数式编程]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/128652852</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/128652852</guid><author>cctvcqupt</author><pubDate>Thu, 12 Jan 2023 00:06:31 +0800</pubDate><description><![CDATA[柯里化函数：函数元降维技术，柯里化函数帮助我们把一个多元函数变成一个不完全调用，把函数调用变成延迟的偏函数(不完全调用函数)调用。偏函数：所谓偏函数，就是以原函数为基础，将某个位置上的参数固定住，后续参数重新扩展传递给原函数，对外则是生成一个新函数。3、函数式编程，是声明式的编程范式（与之对应的是命令式），逻辑清晰，提高代码可读性。2、纯函数的使用，不与全局状态发生交互，具有独立稳定性，提高代码的可维护性。1、将函数视为积木，通过函数来提高代码的模块化和可重用性。柯里化（代码模块化，提高复用性）]]></description><category></category></item><item><title><![CDATA[hMailServer搭建邮件服务器，用自己的域名邮箱，酷一些吧]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/124548506</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/124548506</guid><author>cctvcqupt</author><pubDate>Mon, 02 May 2022 23:00:32 +0800</pubDate><description><![CDATA[需要用到的安装包资源下载,

特意设置了0积分免费下载，贡献给各位，请点赞吧



配置DKIM需要的（含OpenSSL、VC++2008和相关文件）-WindowsServer文档类资源-优快云下载

hMailServer安装包-WindowsServer文档类资源-优快云下载



下面是安装文档，详细操作步骤比较简单：



xhMailServer邮件服务下载安装详细步骤、汉化、配置（内含解决.NET Framework和libmysql.dll32位库的问题）_程序员老油条的博客-优快云博]]></description><category></category></item><item><title><![CDATA[rem和vw,vh 移动端自适应]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/124416862</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/124416862</guid><author>cctvcqupt</author><pubDate>Mon, 25 Apr 2022 23:33:50 +0800</pubDate><description><![CDATA[rem布局的本质是基于宽度的等比缩放

rem单位都是相对于根元素html的font-size来决定大小的,根元素的font-size相当于提供了一个基准，当页面的size发生变化时，只需要改变font-size的值，那么以rem为固定单位的元素的大小也会发生响应的变化。 因此，如果通过rem来实现响应式的布局，只需要根据视图容器的大小，动态的改变font-size即可。




function refreshRem() {
    var docEl = doc.documentElement;
   ]]></description><category></category></item><item><title><![CDATA[事件循环 EventLoop]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/124193737</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/124193737</guid><author>cctvcqupt</author><pubDate>Fri, 15 Apr 2022 14:15:53 +0800</pubDate><description><![CDATA[1、setTimeout(fn, 0)在下一轮“事件循环”开始时执行

2、立即resolve()的 Promise 对象，是在本轮“事件循环”（event loop）的结束时执行


setTimeout(function () {
  console.log('three');
}, 0);
 
Promise.resolve().then(function () {
  console.log('two');
});
 
console.log('one');
 
// one
// two
// t]]></description><category></category></item><item><title><![CDATA[Generator生成器 和 Iterator迭代器]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123280988</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123280988</guid><author>cctvcqupt</author><pubDate>Fri, 04 Mar 2022 19:08:14 +0800</pubDate><description><![CDATA[generator - 廖雪峰的官方网站



Iterator

Iterator是一种机制，也可以说是一种接口，它为不同的数据结构提供了统一的访问机制。任何数据结构只要配置了 Iterator 接口，就可以完成遍历操作

for...of循环的背后调用的正是iteration，数组对象上有iteration属性，数组是一个可迭代对象，因此数组可以被for...of遍历

一个数据结构只要部署了Symbol.iterator属性，就被视为具有 iterator 接口，这个接口就可以被for...of循环消]]></description><category></category></item><item><title><![CDATA[Symbol]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123264028</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123264028</guid><author>cctvcqupt</author><pubDate>Thu, 03 Mar 2022 21:17:13 +0800</pubDate><description><![CDATA[Symbol - JavaScript | MDN

2.3 ES6 Symbol | 菜鸟教程

每个从Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符；这是该数据类型仅有的目的。

最大的用法是用来定义对象的唯一属性名

由于每一个 Symbol 的值都是不相等的，所以 Symbol 作为对象的属性名，可以保证属性不重名。






...]]></description><category></category></item><item><title><![CDATA[Vue2 的数据响应式缺陷]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123261473</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123261473</guid><author>cctvcqupt</author><pubDate>Thu, 03 Mar 2022 19:16:04 +0800</pubDate><description><![CDATA[const vm = new Vue({
                 el:'#app',
                 data:{
                     message:'aaaaaa',
                     user:{
                         name:'zhang-san'
                     },
                     list:['aaaa','bbbb','cc...]]></description><category></category></item><item><title><![CDATA[Vue生命周期]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123095674</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123095674</guid><author>cctvcqupt</author><pubDate>Wed, 23 Feb 2022 19:54:41 +0800</pubDate><description><![CDATA[beforCreate  初始化事件和生命周期

created    初始化注入和响应式



beforMount  把模板编译为render函数

mounted    挂载DOM



beforUpdate  数据变化触发更新

updated



beforDestory 移除事件监听，watchers,和子组件

destoryed




activated   组件激活

deactivated  组件失活
...]]></description><category></category></item><item><title><![CDATA[$attrs 和 $listeners]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123092959</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123092959</guid><author>cctvcqupt</author><pubDate>Wed, 23 Feb 2022 16:26:55 +0800</pubDate><description><![CDATA[$attrs--继承所有的父组件属性（除了prop传递的属性、class 和 style ）

$listeners--属性，它是一个对象，里面包含了作用在这个组件上的所有监听器，你就可以配合v-on="$listeners"将所有的事件监听器指向这个组件的某个特定的子元素。



1、页面中引用Parent组件


&lt;template&gt;
  &lt;div class="x-page"&gt;
     &lt;Parent 
    address="上海浦东" 
    name="张..]]></description><category></category></item><item><title><![CDATA[怎么理解vue的单向数据流和v-model双向绑定]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123070099</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123070099</guid><author>cctvcqupt</author><pubDate>Tue, 22 Feb 2022 15:51:00 +0800</pubDate><description><![CDATA[Vue 的单向数据流：指数据一般从父组件传到子组件，子组件没有权利直接修改父组件传来的数据，即子组件从 props 中直接获取的数据。

子组件使用 $emit 发出一个事件，让父组件接收去修改这个值。



v-model 数据双向绑定，和 单向数据流是两个概念。

v-model 只是一个语法糖，等同于


&lt;input v-model=“phoneInfo.phone”/&gt;
&lt;input :value="PhoneInfo.phone" @input="val =&gt; { Pho]]></description><category></category></item><item><title><![CDATA[微前端-微应用]]></title><link>https://blog.youkuaiyun.com/cctvcqupt/article/details/123063756</link><guid>https://blog.youkuaiyun.com/cctvcqupt/article/details/123063756</guid><author>cctvcqupt</author><pubDate>Tue, 22 Feb 2022 11:07:07 +0800</pubDate><description><![CDATA[现在有哪些成熟的微前端框架? - 知乎

介绍 - qiankun

single-spa | single-spa

为什么要用微前端？

拆分巨型应用，使应用方便迭代更新
兼容历史应用，实现增量开发

特点：

独立部署
	增量迁移
	团队自治
	松耦合代码
优点：

通过路由进行跨应用程序通信
	解决了大型项目如何迭代的问题
	解决了多团队技术栈不同的问题，实现react和Vue等框架整合


实现方式：



NPM式：子工程以NPM包的形式发布源码；打包构建发布还是由基座工程管理，打包时集成。
	]]></description><category></category></item></channel></rss>