自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 Java 常见关键字总结:final、static、this、super!

final,static,this,super 关键字总结final 关键字final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点:final修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法;final修饰的方法不能被重写;final修饰的变量是常量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能让其指向另一个对象。说明:使用final方法的原因

2020-10-30 15:41:47 101

转载 用好Java中的枚举真的没有那么简单

1.概览在本文中,我们将看到什么是 Java 枚举,它们解决了哪些问题以及如何在实践中使用 Java 枚举实现一些设计模式。enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档。枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量。那么这种方式由什么优势呢?以这种方式定义的常量使代码更具可读性,允许进行编译时检查,预先记录可接受值的列表,并避免由于传入无效值而引起的意外行为。下面示例定

2020-10-29 15:55:00 143

转载 URI与URL傻傻分不清楚?

前言总所周知,缓存是解决Http1.1协议传输性能的问题中最主要的手段。缓存既可以存在于浏览器上,也可以存在于服务器中。而影响缓存的Http头部有很多,其中Cache-Control是比较重要的一个,也是取值比较复杂的一个。下面先聊一聊缓存的工作原理,再说说Cache-Control的详细取值。缓存的工作原理HTTP缓存是一个以时间为维度的缓存。浏览器在第一次请求中缓存了响应,而后续的请求可以从缓存提取第一次请求的响应。从而达到:减少时延而且还能降低带宽消耗,因为可能压根就没有发出请求,所以网

2020-10-28 16:46:55 181

转载 深入TLS/SSL协议

总体TLS/SSL协议是为了解决网络通讯中的信息安全问题而诞生的。它的设计目的主要有三个:身份验证——搞清楚与我通讯的人是不是我所想的那个。保密性——就算第三方拿到了通讯内容,也搞不清楚其中所表达的意思。完整性——保证通讯内容的完整性。TLS/SSL协议主要包含两部分:Record记录协议使用对称加密算法来解决通讯消息加密的部分。Handshake握手协议为了完成对称加密,需要通过握手协议来传递密钥。对称加密对称加密算法是指在加密和解密过程中使用相同的密钥。举例

2020-10-27 16:59:54 477 1

转载 Http系列:断点续传与多线程下载

前言当下载电影时,我常常会想中断下载后,为什么点击开始时会在中断的地方继续下载呢?又或者在看在线电影时,为什么可以按着播放条拖动就能看到想看的片段呢?http的range请求将解决以上困惑。多线程、断点续传、随机点播等的场景的步骤1、客户端明确任务:从哪开始下载本地是否已有部分文件:文件已下载部分在服务器端发生改变?使用几个线程并发下载2、下载文件的指定部分内容3、下载完毕后拼装成统一的文件HTTP Range规范在RFC7233中有详细介绍1、允许服务器基于客户端的请求只发送响

2020-10-26 16:18:14 460

转载 这几个小技巧,让你书写不一样的Vue!

前言最近一直在阅读Vue的源码,发现了几个实战中用得上的小技巧,下面跟大家分享一下。同时也可以阅读我之前写的Vue文章vue开发中的"骚操作"挖掘隐藏在源码中的Vue技巧!抽丝剥茧般的阅读源码,将$nextTick()拉下神坛!隐藏在源码中的技巧在实例化Vue时,首先调用的是Vue.prototype._init方法,而在此方法中mergeOptions()方法返回的options将运用在所有的初始化函数中。也就是如下代码:vm.$options = mergeOptions( reso

2020-10-24 14:22:03 473

转载 vue开发中的“骚操作“

前言在与同事协作开发的过程中,见识到了不少“骚操作”。因为之前都没用过,所以我愿称之为“高级技巧”!Vue.extend在交互过程中,有个需求就是点击图标弹出相关信息的弹窗,并且能够同时打开多个。这时就可以用Vue.extend方法手动挂载弹窗组件。举例:// 目录结构/registry /videoDialog videoDialog.vue index.js /XXXDialog ··· index.js// vid

2020-10-23 11:35:23 326

转载 挖掘隐藏在源码中的Vue技巧!

前言最近关于Vue的技巧文章大热,我自己也写过一篇(vue开发中的"骚操作"),但这篇文章的技巧是能在Vue的文档中找到蛛丝马迹的,而有些文章说的技巧在Vue文档中根本找不到踪迹!这是为什么呢?当我开始阅读源码的时候,我才发现,其实这些所谓的技巧就是对源码的理解而已。下面我分享一下我的收获。隐藏在源码中的技巧我们知道,在使用Vue时,要使用new关键字进行调用,这就说明Vue是一个构造函数。所以源头就是定义Vue构造函数的地方!在src/core/instance/index.js中找到了这个构

2020-10-22 11:56:46 170

转载 后端API接口的错误信息返回规范

前言最近我司要制定开发规范。在讨论接口返回的时候,后端的同事询问我们前端,错误信息的返回,前端有什么意见?所以做了一些调研给到后端的同事做参考。错误信息返回在使用API时无可避免地会因为各种情况而导致接口返回错误的信息。比如指定的query参数错误,又或者method不支持等,这些情况都会返回相关的错误信息。另外服务器不稳定或者停止运行了,也必须将错误信息返回。显然,当错误发生的时候,只是笼统地返回“发生了错误”是不行的。如果前端不了解发生了什么错误,也就不知道该怎么去调试,怎么去修复这个bug。

2020-10-21 13:47:56 6041

转载 OAuth2.0与前端无感知token刷新实现

前言OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛的应用。Facebook、Twitter和Google等各种在线服务都提供了基于OAuth规范的认证机制。OAuth一般用于面向第三方大范围公开的API中的认证工作。换言之,假设带有用户注册功能的在线服务A(例如腾讯qq)对外公开了API,在线服务B(例如百度网盘)便可使用这些在线服务A的API提供的各种功能。这种情况下,当某个已在qq里注册的用户需要百度网盘的在线服务时,网盘的在线服务就会希望访问qq来使用该用户

2020-10-20 17:47:39 1523

转载 JavaScript与多线程的不解之缘!

前言对于前端开发者来说,多线程是一个比较陌生的话题。因为JavaScript是单线程语言。也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。UI渲染与JavaScript是共同使用主线程。如果JavaScript运行过长,可能就会中断UI渲染,从而导致页面卡顿。为此,JavaScript推出了异步的处理方法。但终归到底还是单线程的。而且随着电脑计算能力的增强,尤其是多核CPU的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。Web Worker

2020-10-16 15:14:04 132

转载 CSS居中的常用方式以及优缺点

前言居中是页面开发中经常遇到的问题。使用合适的、简单的、兼容性好的居中方式是我们页面仔在整个工作生涯中都要面对的问题。text-align:center来看这个例子,一张图片和文字进行居中。如下图所示:img与文字内容都是行内元素,因此直接使用text-align就行了。代码如下图所示:在最外层的div中使用text-align:center的问题是,会导致所有的子元素都会继承这个属性。如果还有一段文字用作介绍该图片的作用时,这段文字也会被居中。而我们希望这段文字是左对齐的,就不得不单独设

2020-10-14 10:23:25 523

转载 聊一聊Axios与登录机制

前言因为HTTP是一个stateless的协议,服务器并不会保存任何关于状态数据。所以需要登录功能让服务器在以后请求的过程中能够识别到你的身份,而不是每次发请求都要输入用户名和密码。下面介绍一下,我比较常用的登录方案:请求头携带Token的方式。具体步骤:首次登录,将用户名密码传给后端,返回token。将token存储在localStroage和Vuex中。用Axios将token写入请求头中。前端每次请求接口都将携带token信息。后端判断token是否过期,过期或者没有,则返回401

2020-10-13 13:45:18 318

转载 熟悉而陌生API:Promise

前言ES6 发布到现在差不多有5年时间了。在这5年时间里ES6摧枯拉朽般的将现代前端“改朝换代”,Promise是其中“大将”般的存在,影响着无数的前端库和API。可以这么说,Promise已经是现代前端的“血液”。尽管经过5年的日日夜夜,尽管书写过数不尽的Promise。面对着这个时而让我们感到真棒,用的舒服、时而坑得我们踉踉跄跄的API,我们真的了解它吗?陌生情景一:怎么和循环结合相信许多开发者最开始对Promise感到陌生的情景就是:不知道怎么跟循环结合使用。 例如:// 我想将数组下的每个

2020-10-12 11:01:59 173

转载 JavaScript代码是怎么执行的?

前言众所周知,JavaScript是单线程语言。所以JavaScript是按顺序执行的!先编译再执行变量提升请看下面的例子:console.log(cat)catName("Chloe");var cat = 'Chloe'function catName(name) { console.log("我的猫名叫 " + name);}按照得出的结论:"JavaScript是按顺序执行的"来看,步骤如下:执行第一句的时候,cat并没有定义,结果应该是抛出一个错误,然后结束执行。

2020-10-10 13:50:34 1728

转载 理解前端模块概念:CommonJs与ES6Module

前言现代前端开发每时每刻都和模块打交道。例如,在项目中引入一个插件,或者实现一个供全局使用组件的JS文件。这些都可以称为模块。在设计程序结构时,不可能把所有代码都放在一起。更为友好的组织方式时按照特定的功能将代码拆分为多个代码片段,每个片段实现一个功能或者一个特定的目的,然后通过接口的方式组合在一起。这就是模块思想。JavaScript里的模块众所周知,JavaScript在早期是没有模块这一概念。唯有通过srcipt标签将多个js文件一个个的插入在HTML中。当项目越来越大时,这种方式会导致很多问

2020-10-07 13:34:10 347

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除