HTTP响应状态码([RFC9110])

2023-08-03
阅读 14 分钟
835
响应的状态码是一个三位整数代码,用于描述请求的结果和响应的语义,包括请求是否成功以及附带了什么内容(如果有的话)。所有有效代码的范围为100至599(含599)。

浏览器缓存原理

2023-07-29
阅读 6 分钟
436
本文可以配合本人录制的视频一起食用目的通常说到浏览器缓存,大多是和性能优化有关,使用缓存,通常是两个主要目的,第一是提高访问速度,第二是减少网络IO消耗。当合理配置了缓存,可以得到提升用户体验、减轻服务器负担、节省带宽等效果,这是一种效果显著的前端性能优化手段。四个方面浏览器缓存机制涉及四个方面,...

vue-router钩子执行顺序

2023-07-27
阅读 5 分钟
577
Vue的路由在执行跳转时,根据源码可知,调用了router中定义的navigate函数 {代码...} 由上述源码中可以看出,由Promise then的链式调用保证了路由守卫按照以下顺序执行:旧的路由组件beforeRouteLeave全局配置的beforeEach复用的路由组件beforeRouteUpdate新路由的beforeEnter新路由组件的beforeRouteEnter全局配置的bef...

WebGL初接触

2023-07-25
阅读 11 分钟
526
有感于在不少jd中看到关于WebGL的内容,想起来之前在高程中还没看完的canvas,就匆匆把剩余的一点看完了,高程中的内容还是皮毛,就属于很基础的、概念性的东西。

手写一个Promise

2023-07-23
阅读 8 分钟
349
JavaScript这种单线程事件循环模型,异步行为是为了优化因计算量大而时间长的操作。在JavaScript中我们可以见到很多异步行为,比如计时器、ui渲染、请求数据等等。

跨域

2022-12-09
阅读 2 分钟
819
跨域主要由于不符合浏览器的同源策略所产生的一种现象,同源策略属于浏览器的一种安全策略,其要求是所请求资源的协议、域名、端口号与当前页面完全一致,目的是为了保护本地数据不被请求获取的数据污染,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击,因此同源策略拦截的是请求返回来的数据,即服务器响应了,...

cookie、session、web storage

2022-12-08
阅读 2 分钟
791
首先,使用cookie和session的目的都是为了跟踪记录用户状态,因为http协议是无状态的协议,而某些场景服务端需要记录用户的状态,如购物车,需要来识别具体的用户,服务端就为特定的用户创建特定的session,用于标识并跟踪用户;

居中布局:水平居中和垂直居中

2022-12-04
阅读 5 分钟
749
居中布局在实际场景中很常见,在面试当中也经常会被考察。以下分别是水平居中和垂直居中常用的样式。水平居中margin: 0 auto; + width 应用于块级元素居于容器中间若节点不是块级元素,需声明display: block若节点宽度已隐式声明则无需显式声明width {代码...} {代码...} text-align: center; 应用于行内元素居中父节点...

Vue 2.x源码学习:render方法、模板解析和依赖收集

2022-11-28
阅读 37 分钟
1.2k
众所周知,Vue的脚手架项目是通过编写.vue文件来对应vue里组件,然后.vue文件是通过vue-loader来解析的,下面是我学习组件渲染过程和模板解析中的一些笔记。

使用Jenkins构建镜像:将应用打包成镜像

2022-11-23
阅读 4 分钟
1.8k
学习某册子的CICD,记录使用Jenkins构建镜像的过程。使用Jenkins集成Git来构建Docker镜像,为后面的部署准备镜像资源。1. 安装Nodejs环境如果想要安装Node环境,有以下两个办法:源码编译:这种是将Node源码拉下来后,在服务器端编译完成后才可以使用。时间比较长,流程也略复杂使用Jenkins Plugin中NodeJS插件自动配置...

前端:说说工作中解决过的印象比较深刻的问题

2022-11-22
阅读 3 分钟
960
我认为这个问题主要考察的一方面是求职者解决问题的能力,另一方面是求职者的总结复盘能力,有时还考察求职者是否对技术有关注和接触。这类主观题我觉得可以针对JD的要求去贴近招人需求。

centos7安装glibc_2.28和gcc 8.2

2022-11-21
阅读 5 分钟
4.6k
centos7默认的gcc版本是4.8.5,无法编译高版本的glibc 2.28,需要升级到gcc 8.2版本注:gcc高版本和glibc 2.28不兼容 {代码...} 升级gcc升级glibc1. 安装glibc {代码...} 执行./confiure报错:These critical programs are missing or too old: bison compiler安装bison:yum install bison继续执行./configure还是报错...

虚拟机centos7上安装docker+jenkins

2022-11-21
阅读 5 分钟
1.1k
学习某册子的CICD时,安装了docker和jenkins,记录的安装过程和中间碰到的问题。使用的虚拟机为Parallels Desktop,配置为2核4G,系统为centos 7,下载地址。安装docker在开始安装之前,需要安装device-mapper-persistent-data和lvm2两个依赖。device-mapper-persistent-data是Linux下的一个存储驱动,Linux上的高级存储...

Vue 2.x源码学习:数据响应式改造

2022-11-18
阅读 15 分钟
948
众所周知,Vue是以数据驱动视图展示的,即Vue会监听数据的变化,从而自动重新渲染页面的结构。Vue主要通过三步走来实现这个功能:第一步是对数据进行响应式改造,即对数据的读写操作进行劫持;第二步是对模板依赖的数据进行收集;第三步是在数据发生变化时,触发组件更新。数据响应式改造0. defineReactive对数据进行响...

单页应用的优缺点

2022-11-16
阅读 2 分钟
1k
单页应用,即常说的SPA,Single Page Application,从名称上就可以看出它最大的特点,就是单页面,即只有一个页面;相对的就是多页面,即MPA,Multi-Page Application。

JS中有哪几种继承方式

2022-11-14
阅读 4 分钟
706
JS和Java中虽然都有对象的概念,但这两种对象却大有不同。Java的对象是基于类创建的,JS的对象却是基于一个特殊的对象——原型对象——创建的,之前看到一个盖房子的比喻,在Java中盖房子是先画好图纸再盖房子,JS中盖房子却是先盖一个样板房再盖其他房子,觉得也挺贴切。

闭包是什么,有什么用途

2022-11-11
阅读 2 分钟
646
记得以前刚做前端不久的时候,就在百度搜闭包,大多搜到的结果都说的是闭包是什么样子的,比如说在函数外部可以访问到函数内部的变量,又或者说闭包会导致什么问题,比如会影响GC回收。总之没什么标准说法,就好像现在网上的吐槽,你背面试题没用,得和面试官背的同一套才行,但是天知道面试官学的是哪一套。

Vue 2.x源码学习:应用初始化大致流程

2022-11-04
阅读 10 分钟
746
我们可以就从此处开始对Vue的认识。可以看到,这里表面上只做了一个简单的工作,就是通过new操作创建了一个vue的实例,并传递了一个配置项对象,该对象包含了一个render方法。

Ajax学习笔记

2022-11-03
阅读 7 分钟
962
教程链接Ajax介绍:Asynchronous JavaScript and xml在页面不刷新的情况下向服务器发送请求,实现数据的交换,用户体验更好懒加载,按需加载——>资源利用率提高,整体页面加载速度变快(首屏加载)XML Vs. JSONXML设计被用来传输和存储数据。HTML用来在网页当中呈现数据。HTML都是预定义标签,XML中没有预定义标签,都...

TypeScript学习小结:基础使用

2022-11-02
阅读 40 分钟
1.1k
某册子买了两年多了,到最近才开始学习TypeScript,拖延症的严重症状了;不过我还是深信人做一件事是需要一个契机的。学完之后整体感受是:TypeScript在JavaScript的基础上提供了一套类型系统,用以在编码时提供类型提示,并利用类型推断对代码进行检查以及给出错误提示,以规避一些可能潜在的执行JavaScript代码时会出...

WebViewJavascriptBridge.js代码学习

2022-10-26
阅读 6 分钟
1.1k
最早我们的Hybrid应用只是h5调用原生的一些方法,所以只使用了native向页面注入一个webview的变量,并在这个变量上挂载一些方法,在安卓上存在一些问题(?安全漏洞)。后来改用bridge,安全性和兼容性比较好。bridge有一个小小的问题就是如果原生端不存在对应名称的方法,h5无法知道,所以h5需要做一套版本的判断,再进...

JavaScript高级程序设计笔记12 BOM

2022-10-26
阅读 17 分钟
1.2k
BOM的核心——window对象窗口和弹窗location对象——页面信息navigator对象——浏览器信息history对象——浏览器历史记录BOM是使用JavaScript开发Web应用程序的核心。提供了与网页无关的浏览器功能对象。浏览器实现之间共通的部分成为了事实标准,为Web开发提供了浏览器间互操作的基础。HTML5规范,涵盖了BOM的主要内容,希望将J...

Webpack相关知识点

2022-10-25
阅读 4 分钟
507
webpack从配置的入口出发,可以打包所有前端资源,同时可以配置多种loader来处理不同类型文件的转换,并且可以配置plugin来扩展模块打包流程,满足更多构建中特殊的需求,开发过程中还可以使用HMR提升本地开发效率和体验,生产环境中可以利用代码压缩和代码分割来提升前端加载性能,总之就是既可以提升开发效率,又可以...

JavaScript高级程序设计笔记11 期约与异步函数(Promise & Async Function)

2022-10-25
阅读 22 分钟
1k
ES6新增Promise引用类型,支持优雅地定义和组织异步逻辑。ES8增加了使用async和await关键字定义异步函数的机制。异步编程JavaScript这种单线程事件循环模型异步行为是为了优化因计算量大而时间长的操作。(在等待其他操作完成的同时,即时运行其他指令,系统也能保持稳定)只要你不想为等待某个操作而阻塞线程执行,那么...

微前端、single-spa初探

2022-10-14
阅读 21 分钟
1.7k
微前端,前端这次词就不用多做解释了,这个概念的重点在于这个“微”字, 从字面意义上看,微是小的意思,小是相对于大的一个用于比较的形容词,所以通常是在项目庞大的情况下,才会考虑将它变小,去考虑将它拆分成若干个小项目。这就是做微前端所要达到的主要目标,将庞大的项目拆分成多个独立运行、独立部署和独立开发的...

JavaScript高级程序设计笔记10 函数Function

2022-10-13
阅读 16 分钟
786
使用Function构造函数接收任意多个字符串参数,最后一个参数始终会被当成函数体,而之前的参数都是新函数的参数。不推荐使用:这段代码会被解释两次,第一次是将它当作常规ECMAScript代码,第二次是解释传给构造函数的字符串。会影响性能。优点:可帮助理解函数作为对象,把函数名想象为指针

JavaScript高级程序设计笔记09 代理与反射

2022-10-12
阅读 16 分钟
603
ES6新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力。具体就是,可以给目标对象定义一个关联的代理对象,而这个代理对象可以作为抽象的目标对象来使用。在对目标对象的各种操作影响目标对象之前,可以在代理对象中对这些操作加以控制。兼容性:代理的行为实际上是无可替代的(无法polyfill模拟)。元...

JavaScript高级程序设计笔记08 对象、类与面向对象编程

2022-10-12
阅读 13 分钟
571
对象一组属性的无序集合属性类型数据属性 value、writable访问器属性 getter、setter至少有一定义.操作符:默认可配置、可枚举、可写(数据属性)Object.defineProperty/defineProperties:默认不可配置、不可枚举、只读configurable:false。不可删除、不可逆。无法修改其他特性的值(除writable从true改为false)读取...

JavaScript高级程序设计笔记07 迭代器与生成器

2022-10-11
阅读 6 分钟
545
1.迭代反复多次执行一段程序,(有明确的终止条件)迭代器、生成器 ES6计数循环(for):最简单的迭代迭代次数、迭代每次执行的操作 (顺序已知)古早迭代(有序->数组):①必须数组,需引用数组本身;②递增索引的方式通用迭代(ES5):forEach优点:不需引用数组自身;不需索引缺点:只限数组直接调用,不能手动终止...

JavaScript高级程序设计笔记06 集合引用类型

2022-10-11
阅读 9 分钟
492
1. Object(详见c08 p205)适合存储,在应用程序间交换数据创建实例:显式构造函数字面量——>不会调用构造函数(代码更少、更有封装感)函数:大量参数的情况下,适合用:<u>命名参数(必选)+对象字面量封装多个(可选)参数</u>的形式2. Array有序,动态大小2.1 创建实例:构造函数字面量——>不会调用...