<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[虎鲸虎鲸]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44537414</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44537414]]></copyright><item><title><![CDATA[能讲讲 HTTP/2 吗？]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/115598136</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/115598136</guid><author>qq_44537414</author><pubDate>Sun, 11 Apr 2021 13:53:13 +0800</pubDate><description><![CDATA[涉及问题

说说你对 HTTP/2 的理解
HTTP1.1 在性能上存在哪些问题
HTTP/2 是如何提高性能的

出现原因
1. 原有缺陷
在 HTTP1.0 中，采用短连接的形式，即一次请求对应完成一次 TCP 连接建立关闭，如此一来，在 TCP 三次握手四次挥手的过程会浪费很多时间，降低传输效率。
因此，在 HTTP1.1 中引入了长连接，多个请求复用一次 TCP 连接建立与关闭，由此来提升传输效率。
但是，改用长连接后，依然会存在队头阻塞问题，这是由 HTTP 使用的 “请求-应答”模型引起的。
一]]></description><category></category></item><item><title><![CDATA[听说你还为答不好 HTTPS 而发愁？]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/115506193</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/115506193</guid><author>qq_44537414</author><pubDate>Thu, 08 Apr 2021 10:14:22 +0800</pubDate><description><![CDATA[老标题党了，即将发车，请坐稳了

涉及问题

说说你对 HTTPS 的理解
为什么比 HTTP 更安全
为什么不直接使用非对称加密或对称加密
为什么要握手，TLS 的握手过程能讲讲吗

出现原因及特点
HTTPS 相比 HTTP 主要解决原先存在的安全问题，如使用纯文本的形式传输 header，没有完整性校验无法验证是否篡改，没有有效手段确认通信双方的身份等。
除此之外，它和 HTTP 表现一致，如传输内容不限于文本，分为请求方和应答方，有连接无状态等。
如何保障安全
安全性主要由 SSL / TLS 来.]]></description><category></category></item><item><title><![CDATA[JS 基础 | new 和 Object.create() 有什么区别]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/114401207</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/114401207</guid><author>qq_44537414</author><pubDate>Sat, 06 Mar 2021 10:20:38 +0800</pubDate><description><![CDATA[起因
在整理原型这部分知识时，发现了两种修改原型的写法，好像并不影响测试结果
function Fruit() {
    this.type = 'fruit'
}

function Apple() {
    this.name = 'apple'
}

// Apple.prototype = new Fruit()
Apple.prototype = Object.create(Fruit.prototype);

var a = new Apple()
console.log(a instanc]]></description><category></category></item><item><title><![CDATA[JS基础 | 探究块级作用域的前身]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/114198710</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/114198710</guid><author>qq_44537414</author><pubDate>Sat, 27 Feb 2021 23:31:58 +0800</pubDate><description><![CDATA[为什么需要块级作用域
主要是因为，原有全局作用域和函数作用域的设计会带来一些使用上的问题。
在循环语句中，使用 var 声明的计数变量在循环外也可以使用，变量污染外部函数作用域。
同时，var 变量提升，可重复声明的特点可能导致内部变量覆盖外部变量，引发意料外的错误。
var tmp = 1;

function f() {
    console.log(tmp);
    if (false) {
        var tmp = 'test';
    }
}

f(); // undefined
]]></description><category></category></item><item><title><![CDATA[Element UI 懒加载树全选 子项动态更新]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/109870146</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/109870146</guid><author>qq_44537414</author><pubDate>Fri, 20 Nov 2020 22:37:26 +0800</pubDate><description><![CDATA[刚接触 Vue，欢迎补充解法或指出问题！感谢 ：）

需求描述
有三类数据，切换类型时原有选中信息不清空
使用树形控件 el-tree, 数据采用懒加载，动态获取；支持全选
层级最多三级，最少一级；选中数据只取叶子节点
效果预览

实现思路
完整代码见 在线示例
需求拆解一下，主要的解决步骤为：


确定全选的实现方案
网上提到的较多的是 单独写个多选框，但不是懒加载的树
尝试过后，笔者选择了 将全选框作为根节点，默认展开一层 的办法 (感谢峰哥提点！
 // 部分相关代码
 loadNode(node,.]]></description><category></category></item><item><title><![CDATA[Event Loop 探寻记(一)]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/109457143</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/109457143</guid><author>qq_44537414</author><pubDate>Mon, 02 Nov 2020 20:48:31 +0800</pubDate><description><![CDATA[本期内容的主角为 Event Loop，事件循环
我们将从why，what, how三个角度展开

Why
JavaScript 为浏览器脚本语言，主要用于与用户交互，操作DOM(Document Object Model，文档对象模型)。它是单线程的，即同一时间只能做一件事。如设计为多线程，容易出现操作上的冲突，带来复杂的同步问题。

就好比两人同时修改在线文档，一人删除了一句话，一人对修改了句子的一部分

而Event Loop的出现与 JavaScript 单线程的特性有着直接联系。
单线程意味着所有]]></description><category></category></item><item><title><![CDATA[Flag壁纸生成器诞生记]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/108875406</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/108875406</guid><author>qq_44537414</author><pubDate>Tue, 29 Sep 2020 20:54:05 +0800</pubDate><description><![CDATA[​        某天，有条咸鱼意识到需要改变一下生活习惯，使用记事本记了一段小目标，疯狂找小型工具把图片做成壁纸，形式主义地鞭策自己。

​        Flag 壁纸生成器的点子，源自某次的间歇性踌躇满志。下文中，以 小F 代称 Flag 壁纸生成器 这个小朋友。
在线预览（建议使用微信扫描二维码）


方案1 小程序版
想法构建
最初想得很多，天马行空，啥都想做进去，希望做的越全越好
整个打卡，可以每天签到，选自己的完成度；再整点鼓励的沙雕话？…
一整个周期结束，完成度达到多少，可以获得一枚徽章；.]]></description><category></category></item><item><title><![CDATA[前端性能优化初体验]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/108423747</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/108423747</guid><author>qq_44537414</author><pubDate>Sat, 05 Sep 2020 19:58:09 +0800</pubDate><description><![CDATA[项目前端使用 Preact
笔者初次使用 webpack，尝试过从头配置，屡战屡败
最终选择，配置 preact.config.js，进行优化

前言
简单交代一下在 Preact 脚手架工具的基础上如何自定义配置：


已有的配置可参考 webpack-client-config.js


如何在 preact.config.js 中配置 webpack  文档传送门


Preact-cli 中的配置已安装 webpack-bundle-analyzer ，依据文档可以通过配置


// packag.]]></description><category></category></item><item><title><![CDATA[Node | 文件保存正常 大小翻倍 内容不全]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/107387043</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/107387043</guid><author>qq_44537414</author><pubDate>Thu, 16 Jul 2020 17:23:48 +0800</pubDate><description><![CDATA[文章目录情况描述原因分析前端后端解决办法
情况描述
以上传图片为例，原图片如低于60KB，正常保存；原图片如大于该值，例为145KB，保存后变为273KB，内容缺失，如下图

前端使用 antd 的 Upload 组件，后端使用 Express

原因分析
网上关于文件上传下载的内容很多，但没有找到同类问题
这说明代码出现了大问题
冷静 冷静
笔者遇到该问题时，项目是前后端分离开发的，先从自己身上找毛病
前端

源头：组件传值过程中存在问题
方法：拿网上博客提供的可执行案例，替换后端文件，测试一下能否正常上]]></description><category></category></item><item><title><![CDATA[Antd | 如何在v4中实现带单位的数字输入框]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/106226146</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/106226146</guid><author>qq_44537414</author><pubDate>Wed, 20 May 2020 00:33:18 +0800</pubDate><description><![CDATA[需求描述

输入为数字，显示单位
标注哪些为必填项
数字校验


效果图


实践过程

输入数字，使用&lt;InputNumber&gt;比使用&lt;Input&gt;更不容易出现奇奇怪怪的问题
参照v3中的写法，如需在&lt;InputNumber&gt;后加入元素，需要拿标签包裹
直接套用v3中的写法，会出现如下报错：

Warning: [antd: Form.Item] `children` is array of render props cannot have `name`.

(报错这玩]]></description><category></category></item><item><title><![CDATA[报错摘记 |   Nginx 安装后无法启动（已安装Apache）]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/106120673</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/106120673</guid><author>qq_44537414</author><pubDate>Thu, 14 May 2020 19:03:17 +0800</pubDate><description><![CDATA[情况描述
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)


]]></description><category></category></item><item><title><![CDATA[如何实现导航选中状态随路由变化]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/106028187</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/106028187</guid><author>qq_44537414</author><pubDate>Sat, 09 May 2020 22:12:33 +0800</pubDate><description><![CDATA[问题描述
在使用 antd 的过程中，突然发现 &lt;Menu&gt; 中选中状态的元素并没有随路由变化而改变
此时相关代码如下：
&lt;Menu 
    theme="light" 
    mode="horizontal" 
    defaultSelectedKeys={USER_MENU_LIST[0].name}
&gt;
    {this.currUser.type &amp;&amp; ADMIN_MENU_LIST.map((item) =&gt;
        &lt;Men]]></description><category></category></item><item><title><![CDATA[Git | 团队协作初体验（含常用代码）]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105923445</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105923445</guid><author>qq_44537414</author><pubDate>Tue, 05 May 2020 00:32:21 +0800</pubDate><description><![CDATA[文章目录熟悉Git的基本命令创建仓库，邀请协作者常用命令常见情况1. 冲突
熟悉Git的基本命令
https://learngitbranching.js.org/?locale=zh_CN
在游戏中熟悉命令,更容易加深印象
视频课推荐 表严肃

创建仓库，邀请协作者
转发邀请链接，会更便捷！ : p

常用命令
①git pull --rebase 拉取远程仓库代码到本地（线性） 补充阅读
②g...]]></description><category></category></item><item><title><![CDATA[Ajax | 数组对象中有元素 但长度为0]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105670161</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105670161</guid><author>qq_44537414</author><pubDate>Tue, 21 Apr 2020 23:06:01 +0800</pubDate><description><![CDATA[情况描述

$(document).ready(function(){
	init();
	getQuestion();
});

function init() {
	$.ajax({
		url: 'questions.xml',
		cache: false,
		dataType: 'xml',
		success: function(data) {
			$(data).find('is...]]></description><category></category></item><item><title><![CDATA[Web | 为什么两个标签实现作用一样，但没有被替代]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105534759</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105534759</guid><author>qq_44537414</author><pubDate>Wed, 15 Apr 2020 17:41:41 +0800</pubDate><description><![CDATA[在看Bootstrap文档时，发现了有些HTML标签实现的是一样的效果，如&lt;del&gt;和&lt;s&gt;，&lt;ins&gt;和&lt;u&gt;。作用效果相似，但却分成了两个标签。
（注：使用时建议先查一下支持情况，如&lt;s&gt; &lt;u&gt;已经不推荐使用）
上述标签主要体现在表示的语义不同
这和一道经典面试题很相近：什么是Web语义化，有什么好处

Web语义化
语...]]></description><category></category></item><item><title><![CDATA[MySQL | 如何理解并解决后端请求数据时间相差八小时]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105519764</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105519764</guid><author>qq_44537414</author><pubDate>Wed, 15 Apr 2020 12:27:33 +0800</pubDate><description><![CDATA[情况描述
数据库中存储的为Date类型的数据

将数据取出后，时间变为2017-09-02T16:00:00.000Z。后端返回给前端的数据与实际数据相差八小时。如果直接截取字符串，就会出现和实际数据相差一天的魔幻情况
原因分析
T， Z分别表示什么意思
T，分隔时间和日期，没有特殊含义
Z，表示为零时区时间
&gt; new Date('2017-09-02T16:00:00.000Z')
  ...]]></description><category></category></item><item><title><![CDATA[Express | req.body为空对象]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105290884</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105290884</guid><author>qq_44537414</author><pubDate>Fri, 03 Apr 2020 13:12:17 +0800</pubDate><description><![CDATA[解决思路
1.检查是否正确引入中间件body-parser
var bodyParser = require('body-parser');

// 解析 application/json
app.use(bodyParser.json());
// 解析 url编码
app.use(bodyParser.urlencoded({ extended: true }));

2.检查返回的字符编码
...]]></description><category></category></item><item><title><![CDATA[JavaScript | 无参函数调用不需要加（）？]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105232933</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105232933</guid><author>qq_44537414</author><pubDate>Tue, 31 Mar 2020 22:23:04 +0800</pubDate><description><![CDATA[情景
示例一
//正常调用
function getData() {
	...	
}

window.onload = getData;

嗯？getData不是一个函数吗？
参照MDN中的例子，不是应该用getData()这样的形式调用函数？
//正常调用
function getData() {
	...	
}

//modify
window.onload = getData();

示例二...]]></description><category></category></item><item><title><![CDATA[CSS | 「margin」重叠不生效？]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105072465</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105072465</guid><author>qq_44537414</author><pubDate>Tue, 24 Mar 2020 17:41:33 +0800</pubDate><description><![CDATA[「margin」重叠问题，网上的相关文章很多，本文不详述。
传送门：css margin的相关属性，问题及应用
情况描述


？这俩的·margin·怎么都保留了  陷入沉思
原因分析
footer {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: colum...]]></description><category></category></item><item><title><![CDATA[伪保姆级教程 | 如何使用阿里云服务器搭建博客]]></title><link>https://blog.youkuaiyun.com/qq_44537414/article/details/105024745</link><guid>https://blog.youkuaiyun.com/qq_44537414/article/details/105024745</guid><author>qq_44537414</author><pubDate>Sun, 22 Mar 2020 11:29:52 +0800</pubDate><description><![CDATA[上回说到，虎子来到了阿里云大陆，试图闯出一片天地 …
新手任务：搭建博客

咳咳，老手请绕道，写的不好，见谅见谅！正文开始…

第一话：确定目标
1.服务器

云翼计划
云小站
试用中心

刚入坑，选择了 云翼计划&gt;学生专享套餐&gt;云服务器ECS Ubuntu18.04
云小站如愿意从此链接购买的话，非常感谢  ????
？云服务器ECS，轻量应用服务器啥区别
从官方文档入手，两个传送门：云...]]></description><category></category></item></channel></rss>