手写SSR服务器
手写SSR服务器#参考文章:
https://blog.csdn.net/lireign/article/details/121912888
#参考视频:
https://www.bilibili.com/video/BV1wY4y1w7S6/?p=4&spm_id_from=333.880.my_history.page.click&vd_source=eeb7ae40bd78a24b0434b669a8496d07
一,相关概念SPA:single page web application,单页 Web 应用。Web 不再是一张张页面,而是一个整体的应用,一个由路由系统、数据系统、页面(组件)系统等等,组成的应用程序。
SEO:Search Engine Optimization,搜索引擎优化。通过各种技术(手段)来确保,我们的Web内容被搜索引擎最大化收录,最大化提高权重,最终带来更多流量。但爬虫收录的数据存在优先级(HTML > JSP > VUE),为了使更有利于爬虫和搜索,将页面和数据进行整合。
SSR:Server Side Render,服务 ...
C++中的文件读出写入
C++中的文件读出写入1,背景当我们提交代码不通过,去原网站发现输出的提示为:请按照题目要求读入数据时,极大可能是数据以文件方式读入。
审题后可能会发现题目中:
2,文件读出写入本文只介绍一种很简单很实用的文件操作
优点是像cin和cout一样方便简洁
需要引入头文件
1#include<fstream>
1)读出文件对于文件都遵循这样的顺序:
打开文件 -> 读入操作 -> 关闭文件
123ifstream inFile("stone.in.txt");inFile >> L >> n >> m;//类似于cininFile.close();
2)写入文件写入与读出类似:
123outFile.open("stone.out.txt");outFile << binary(0, L);//类似于coutoutFile.close();
git合并多个commit
git 合并多个 commit#参考文章:
https://segmentfault.com/a/1190000007748862
#参考视频:
https://www.bilibili.com/video/BV15h411f74h/?spm_id_from=333.337.search-card.all.click&vd_source=eeb7ae40bd78a24b0434b669a8496d07
1,背景在项目中遇到了要把多个 commit 合并为一个 commit,简洁明了。此处实践一下。
2,过程我们来模拟一下整个过程:
1234567#git-merge-commit-demo初始化abcde
比如说我们用 abcde 来模拟 5 次分别的 commit,查看记录:
1git log --oneline
如果我们要合并 a,b,c,d,e,则我们需要找到 a 前面一个的序号,即初始化:e074190,然后我们执行最关键的一步操作,
1git rebase -i e074190
然后我们会进入这样一个输入框:(下面的#全是注释,不用管)
我们要使用其中的 s ...
重学JS-1
重学 JS-1#发展史,ECMA,编程语言,JS 相关,变量,JS 值
专业素养
#参考视频:
https://www.bilibili.com/video/BV1x441167iH/?spm_id_from=333.337.search-card.all.click&vd_source=eeb7ae40bd78a24b0434b669a8496d07
一,发展史1,五大主流浏览器
五大主流浏览器
内核
IE
trident
chrome
webkit blink
safari
webkit
firefox
gecko
opera
presto
2,浏览器的历史 和 JS 诞生
①1990 蒂姆 伯纳斯 李 超文本分享咨询的人
world wide web 移植到 C libwww/nexus
允许别人浏览他人编写的网站
②1993
美国伊利诺大学 NCSA 组织(马克 安德森)
MOSIAC 浏览器 显示图片 图形化浏览器
③1994
马克 安德森和吉姆 克拉克 硅图 SGI
MOSIAC communication corporat ...
axios封装拦截器
axios 封装拦截器#参考文章:
axios 官网:https://axios-http.com/
TypeScript 封装 axios——Vue3+Ts 实践:https://zhuanlan.zhihu.com/p/452946486?utm_id=0
axios 请求及响应拦截理解:https://www.cnblogs.com/caijinghong/p/14120244.html)https://www.cnblogs.com/caijinghong/p/14120244.html?ivk_sa=1024320u
一,为什么要封装
项目中会有很多的模块都需要发送网络请求,导致每个模块对 axios 依赖性太强,即每个模块都和一个第三方库耦合度较高
在我们发送网络请求的时候,往往会有很多共同的特性,比如在请求头中添加 token,展示一个 loading
二,拦截器简介拦截器主要分为两种,请求拦截器和响应拦截器。
请求拦截器:请求发送之前进行拦截,应用于我们在请求发送前需要对请求数据做一些处理。例如: - 携带 token - 当请求时间过长时,设置 loadin ...
Java中的注解:Annotation
Java中的注解:Annotation#参考视频:
https://www.bilibili.com/video/BV1p4411P7V3/?spm_id_from=333.337.search-card.all.click&vd_source=eeb7ae40bd78a24b0434b669a8496d07
一,什么是注解1,注解JDK5.0开始引入的新技术
注解Annotation 不等于 注释Comment
2,注解作用
不是程序本身,可以对程序作出解释
可以被其他程序(比如:编译器等)读取
3,注解格式@注释名
比如:
1@Override //重写的注解
可以添加参数,比如:
1@SuppressWarnings(value="unchecked")
4,何处使用可以附加在package , class , method , field等上面。相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问
二,内置注解@Override :表示重写
@Deprecated:表示不鼓励程序员使用,但可以使用,或存在更 ...
关于我为什么开始写博客这件事
关于我为什么开始写博客这件事因为太菜,后来发现没什么可解释的,坚持写就完了
JS数据类型
JS数据类型#本文仅对js数据类型做区分和比较,不详细探究每种数据类型特性
#参考文章:https://segmentfault.com/a/1190000006752076
一,概述js中的数据类型只分成两类,但是根据他们的特点,有许多种叫法。本文使用基本类型和引用类型。
基本类型
引用类型
原始类型
对象类型
不能拥有方法的类型
拥有方法的类型
不可变类型
可变类型
二,基本类型6 种基本数据类型:Undefined、Null、Boolean、Number、String、Symbol (new in ES 6)
1,基本类型的值不可变123var name = 'laura';name.toUpperCase(); // 输出 'LAURA'console.log(name); // 输出 'laura'
我们可以发现name并未发生改变,toUpperCase()返回了一个新的字符串
同时,我们也不能给基本类型添加属性和方法
2,基本类型的比较是值的比较只有在它们的值相等的时候它们才相等。
1 ...
串的处理
串的处理一,题目要求题目描述在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
把每个单词的首字母变为大写。
把数字与字母之间用下划线字符(_)分开,使得更清晰
把单词中间有多个空格的调整为 1 个空格。
输入描述用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由 1 个或多个空格分隔。假设用户输入的串长度不超过 200 个字符。
输出描述输出处理好的字符串。
输入输出样例示例
输入
1you and me what cpp2005program
输出
1You And Me What Cpp_2005_program
运行限制
最大运行时间:1s
最大运行内存: 256M
二,解题思路1,对空格的处理举个例子:
比如在这里,我们要删除多余的空格,只保留一个空格
就是当i本身为空格时,将j指向i+1,删去j位置所在的空格,删除函数erase会自动返回j的下一个位置,用while循环判断直至j不是空格
2,对首字母大写的处理我们可以发现除了第一个单词外,其他的首字母都出现在空格的后面,也 ...
理解网络分层模型
理解网络分层模型#简介:本文仅简要,通俗地介绍网络分层模型,帮助初学者对这个抽象的概念进行理解
#参考文章:https://juejin.cn/post/6844903934159519757
https://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
一,为什么要对网络层次进行划分计算机与计算机之间需要进行通信,而我们知道计算机之间的连线只能传送0,1信号。这样就出现了众多问题:
0,1信号的意义是什么
两个计算机之间怎么进行识别
怎么才能知道对方的地址
不同计算机应用程序怎么知道是给自己传递的数据
不同的通信数据格式怎么来规定
…
我们就需要定义一套通信规则,然而仅仅用一套规则完成上述功能便显得过于繁冗。
我们决定采用分层划分的结构。不同层完成不同的功能,同时实现层与层之间的改动而不相互影响。
二,如何分层
计算机网络体系结构分为3种:OSI体系结构(七层),TCP/IP体系结构(四层),五层体系结构。
OSI体系结构: 概念清楚,理论也比较完整,但是它既复杂又不 ...