复杂的网站都会有大量的CSS代码,通常也会有许多重复的值。举个例子,同样一个颜色值可能在成千上百个地方被使用到,如果这个值发生了变化,需要全局搜索并且一个一个替换,效率不高且容易出错。自定义属性在某个地方存储一个值,然后在其他许多地方引用它。另一个好处是语义化的标识。比如,--main-text-c...
Dash是一个非常棒的软件,在里面查询API很方面,但是他没有windows版本...,在mac上也是要收费的...,好在有DevDocs,功能与Dash一样,界面排版也都差不多,就是没有桌面版本好,那我们用electron把它做成一个桌面软件~从官网上clone一个例子git clone http...
安装pip install django -i pypi.tuna.tsinghua.edu.cn/simple/生成环境依赖包的文件 pip freeze > requirements.txt2.使用requirements.txt安装依赖的方式pip install -r requirem...
Java商城github地址:github.com/macrozheng/…完整学习文档:www.macrozheng.com/mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商...
Angular Schematics 是基于模板(Template-based)的,Angular 特有的代码生成器,当然它不仅仅是生成代码,也可以修改我们的代码,它使得我们可以基于 Angular CLI 去实现我们自己的一些自动化操作。相信在平时开发 Angular 项目的同时,大家都用过 ng...
在 Axios 如何取消重复请求? 这篇文章中,阿宝哥介绍了在 Axios 中如何取消重复请求及 CancelToken 的工作原理。而本文将介绍在 Axios 中如何通过 拦截器或适配器 来实现请求重试的功能。那么为什么要进行请求重试呢?这是因为在某些情况下,比如请求超时的时候,我们希望能自动重新...
JS 中表示“集合”的数据结构有:Array、Object、Map、Set等。需求:需要统一的接口机制,遍历不同表示“集合”的数据结构。解决方案:遍历器(Iterator)就是这个接口,针对不同的数据结构完成都可遍历。一般项目里其实不太用使用Iterator,但是理解这个,可能是理解其他的基础,比...
volatile的作用是什么?volatile是一个轻量级的synchronized,一般作用与变量,在多处理器开发的过程中保证了内存的可见性。相比于synchronized关键字,volatile关键字的执行成本更低,效率更高。volatile的特性有哪些?并发编程的三大特性为可见性、有序性和原子...
应该有面试官问过你:什么是闭包?闭包有哪些实际运用场景?闭包是如何产生的?闭包产生的变量如何被回收?这些问题其实都可以被看作是同一个问题,那就是面试官在问你:你对JS闭包了解多少?来总结一下我听到过的答案,尽量完全复原候选人面试的时候说的原话。答案1: 就是一个function里面return了一个...
有了 Electron ,我们就可以轻松地写桌面应用了,然后可以运行在不同操作系统,这是因为其原理基于浏览器内核实现应用。今天就来看一看在 Electron 中主线程是如何和渲染线程进行通讯的。那么需要先了解一下什么是主线程,什么又是渲染线程。Electron 中,从 package.json 的 ...
Vite是一个面向现代浏览器的一个更轻,更快的web应用开发工具,他基于ECMAScript标准原生模块系统ES Module实现。他的出现是为了解决webpack冷启动时间过长,另外Webpack HMR热更新反应速度慢的问题。使用Vite创建的项目就是一个普通的Vue3应用,相比基于Vue-cl...
概述如何使用null (null和undefined)检查访问对象的嵌套属性?假设我们必须从后台的接口访问用户详细信息。可以使用嵌套的三元运算符 :const userName = response ? (response.data ? (response.data.user ? response....
前言java.util.BitSet 是 JDK 中对 Bitmap 算法的实现类,使用了 long[] 来存储二进制数据。BitSet 提供了 添加、删除、获取数据 以及 与、或、异或 等操作。下面就来了解一下其中的奥秘吧!存储结构BitSet 使用一个 long[] 来存储数据,long 类型占...
一、网关简介网关介绍在微服务架构里,服务的粒度被细化,各业务系统都可独立的开发部署,甚至不同的语言编写,这时候就需要一台和语言无关的服务协议作为各单元的通讯方式,API 网关是对所有的调用者透明,对与提供rest api的服务有所保护,隐藏于api网关之后只关注服务的创建,不关注这些策略的基础设施...
内容概要上一篇章里,我们已经学习了分数计算的基本概念,Solver通常会将大部分执行时间用于运行分数计算(在其最深层次的循环中调用)。在这个篇章里,我们来讲解一些分数计算的一些技巧,及一些陷阱。分数计算速度在求解出一个问题后,Solver将记录每秒的分数计算速度。这是测试分数计算速度的最好办法,尽...
最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,type来展示。这里介绍最基本的pv,uv的展示。iduvpvdatehour11555993060532...
了解Cookie、Session、JWTCookie是服务器在本地机器上存储的一小段文本信息,第一次登录后,由服务端通过响应报文向客户端浏览器发送一个叫做Set-Cookie的首部字段信息,客户端会把Cookie保存在本地。当 浏览器再次请求时,浏览器会自动将Cookie一同提交给服务器,服务器便...
引言网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别。一、TCP/IP网络模型计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进...
1. 简单介绍Vue.js 允许你自定义过滤器(filter),可被用于一些常见的文本格式化。 过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。 过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:<!-- 在双花括号...
forEach是不能使用任何手段跳出循环的,为什么呢?我们知道forEach接收一个函数,它一般有两个参数,第一个是循环的当前元素,第二个是该元素对应的下标,我们手动实现一下:Array.prototype.myForEach = function (fn) { for (let i = 0...