前端常见理论知识
1、从在浏览器中输入URL到搜索到想要的网页的结果,这中间经历了哪些步骤?1234567891001.浏览器查找域名对应的 IP 地址(DNS 查询:浏览器缓存->系统缓存->路由器缓存->ISP DNS 缓存->根 域名服务器)02.浏览器向 Web 服务器发送一个 HTTP 请求(TCP 三次握手)03.服务器 301 重定向(从 example.com 重定向到 www.example.com)04.浏览器跟踪重定向地址,请求另一个带 www 的网址05.服务器处理请求(通过路由读取资源)06.服务器返回一个 HTTP 响应(报头中把 Content-type 设置为 'text/html')07.浏览器进 DOM 树构建08.浏览器发送请求获取嵌在 HTML 中的资源(如图片、音频、视频、CSS、JS 等)09.浏览器显示完成页面10.浏览器发送异步请求
2、进程与线程的联系和互相通信123456789101112131415进程和线程是操作系统中管理和执行程序的基本单位。它们之间有着密切的联系,并且可以通过各种机制进行通信。联系: ...
后端常见理论知识
1、java线程池的参数有哪些?2、操作系统进程间的通信方式有哪些?3、java内存模型JMM
前端性能优化
前端性能优化1、页面加载(主要)
加载就是进入页面时,页面内容的载入过程
问题:当你打开一些网站时,你会发现,有的网站首页上的文字、图片出现很缓慢,而有的则很快,这个内容出现的过程就是加载
解决方案:特别关注白屏和首屏时间
什么时白屏时间?
指的是从输入内容回车(包括刷新、跳转等方式)后到页面开始出现第一个字符的时间
这个过程详细包括:
DNS查询
建立TCP连接
发送首个http请求
返回html文档
html文档解析完毕
这个过程的标准时间是300ms
可能会导致白屏时间过长的因素?
有可能是DNS查询时间长,建立TCP请求连接太慢,或者是服务器处理请求速度太慢,客户端下载、解析、渲染时长过长,没有做Gzip压缩,缺乏本地离线化处理,等等
首屏时间是怎么计算的?
首屏时间 = 白屏时间 + 渲染时间
它是指从浏览器输入地址并回车后,到首屏内容渲染完毕的时间,这期间不需要滚动鼠标或者下拉刷新,否则无效
如果守屏时间长,白屏时间短,到底是哪里的问题?
首屏时间可以拆分为白屏时间、数据接口响应时间、图片加载资源等
白屏时间数据接口响应时间可以直接 ...
学习资源
计算机基础知识CyC2018/CS-Notes: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计 (github.com)
前端编程基础qianguyihao/Web: 千古前端图文教程,超详细的前端入门到进阶知识库。从零开始学前端,做一名精致优雅的前端工程师。 (github.com)
Vue2 + vuex(Vue入门项目)bailicangdu/vue2-happyfri: vue2 + vue-router + vuex 入门项目 (github.com)
Vue2比较复杂的大项目
基本涵盖了vue.js的大部分知识点
bailicangdu/vue2-elm: Large single page application with 45 pages built on vue2 + vuex. 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用 (github.com)
仿豆瓣市集
这是基于vue2+vue-router2+vuex+axios仿(豆瓣市集)的一个vue全家桶入门Demo ...
Recent Plans
Recent Plans:
英语单词
阅读
政治
408
数学(16:00开始)
项目
数据结构基础
1、栈和队列1、关于只给出了入栈序列和出栈序列中的一个然后判断另一个的合法性的问题?例:给定一个入栈序列 a, b, c, d, e, f;然后判断 cabdef、bdaefc 这些出栈序列是否合法
12cabdef:我们可以发现,第一个出栈的元素为c,其前面没有对应的入栈序列中c前面的a和b,所以我们知道在c出栈的前一刻,栈中是这样的——abc(栈底->栈顶),由此我们可以推断出c后面的出栈序列一定是这样的—— ...b...a...,其中省略号的地方可以有数据也可以没有数据,进而我们可以判断c(ab)defc是非法的出栈序列bdaefc:我们可以发现,第一个出栈的元素是b,我们无法由此判断是否合法,所以接着往后看,接下来的一个元素为d,其前面没有对应的入栈序列中d前面的a和c,根据入栈序列我们可以推断出d后面的出栈序列一定是这样的—— ...c...a...,其中省略号的地方可以有数据也可以没有数据,进而我们可以判断bd(a)ef(c)是非法的出栈序列
2、链表1、如何判断两个链表是否有交点且交点的位置?2、如何判断一个链表中是否有环并求出环的入口位置?3、树的基本操作顺序 ...
算法基础
算法可视化:数据结构和算法动态可视化 (Chinese) - VisuAlgo
Data Structure Visualization (usfca.edu)
数据结构和算法:(图文解析)Hello 算法 (hello-algo.com) (github项目源码地址:krahets/hello-algo: 《Hello 算法》:动画图解、一键运行的数据结构与算法教程,支持 Java, C++, Python, Go, JS, TS, C#, Swift, Rust, Dart, Zig 等语言。 (github.com))
c++中没有split库函数,我们可以自己封装一个这里我们会用到一个c++的库函数strtok()
函数原型
char * strtok(char *s, const char *delim)
函数功能
分解字符串为一组字符串, s为要分解的字符串,delim为分隔字符串
描述
strtok()用来将字符串分隔成一个个小片段,参数s指向将要被分隔的字符串,参数delim则为分隔字符串,当strtok()在参数s的字符串中发现到参数deli ...
hexo个人博客搭建
hexo个人博客搭建前提:已安装node.js+git+npm,有gitee/github账号且有自己的公开的仓库
1、npm install -g cnpm –registry=https://registry.npm.taobao.org (可不执行此步骤。作用:改为淘宝镜像,加快npm下载速度)
2、npm install hexo-cli -g (安装hexo脚手架,即安装hexo)
3、hexo init blog (通过hexo生成博客项目文件夹。此步骤可以不执行,可以自己在某个位置创建一个空文件夹,在空文件夹目录下打开cmd/git bash执行:hexo init)
4、cd blog (此步骤可以不执行 。在自己创建的博客项目文件夹的目录下打开cmd终端或git bash)
5、hexo server (在本地运行博客项目,自动打开一个服务器。可以通过在浏览器中输入终端生成的地址访问自己的博客项目)
6、npm install hexo-deployer-git –save (注意:要在博客项目文件夹中打开cmd终端或git bash执行 ...
git基本使用
初次使时的全局设置:git config –global user.name ‘新用户名’
git config –global user.email ‘新邮箱地址’
git config –global –list(此代码可以显示出当前的”用户名“和”邮箱地址“)
初始化仓库:git init
把本地文件放到暂存区:git add .(点表示所有的文件)
把本地文件放到本地仓库里面:git commit -m ‘提交~~~网站’
git commit -m ''规范:
1234567feat:新功能(feature)fix:修补bugdocs:文档(documentation)style: 格式(不影响代码运行的变动)refactor:重构(即不是新增功能,也不是修改bug的代码变动)test:增加测试chore:构建过程或辅助工具的变动
链接远程仓库:git remote add origin 仓库地址(error:remote origin already exists.已经链接到了远程仓库,跳过此步即可)
把本地仓库的文件推送到远程仓库 push:git pu ...
微信小程序
设置代理
当我们在自己的电脑上配置了其他代理的时候就会影响到微信开发者工具的使用。所以我们可以将微信开发者工具的代理模式修改为不使用任何代理,勾选后直连网络
创建小程序项目
此步骤不做过多赘述,要注意的就是从官网上找到自己的AppID,然后将自己的AppID填入到对应的位置。
项目结构1、pages:用来存放所有小程序的页面
2、utils:用来存放工具性质的模块(例如:格式化时间的自定义模块)
3、app.js:小程序项目的入口文件
4、app.json:小程序项目的全局配置文件
5、app.wxss:小程序项目的全局样式文件
6、project.config.json:项目的配置文件
7、sitemap.json:用来配置小程序及其页面是否允许被微信索引
sitemap.json:
1234567{ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", "rule ...