Clay 的技术空间

用进废退 | 艺不压身

什么是 Pjax

​Pjax​​​ 通过 Ajax 从服务器获取 HTML 内容,然后用加载到的 HTML 替换页面上容器元素的内容。Pjax 使用 pushState 更新浏览器中的当前 URL,即 ​​pjax = pushState + ajax​​ 。最早的时候,​​Pjax​​​ 是一个基于 ​​jQuery​​ 的插件,后来推出了完全独立的版本,适用更广泛的应用场景。值得一提的是,Pjax 最大的优势在于,可以在网站本身无刷新的情况下,局部刷新页面内容,同时在现代浏览器中支持前进和后退,由于局部加载的数据量极小,加载速度极快,因此可以最大程度地提升用户体验。Pjax 的天生劣势在于,默认配置对 ​​SEO​​ 并不友好,同时非常依赖页面布局的一致性,需要大量改造来优化。

Hexo 引入 Pjax

很多较早使用 ​​Pjax​​ 的 Hexo 主题,都使用了基于 jQuery 的版本。因此如果是新引入,可以使用最新独立版本的 ​​Pjax​​

1
<script src="https://cdn.jsdelivr.net/npm/pjax@VERSION/pjax.min.js"></script>
阅读全文 »

前言

前端项目发布新版本时,会经常遇到需要清理缓存的问题,以下是 Vue 项目禁用缓存的方法。

HTML 内容

在 HTML 页面(如 index.html)的 <head> 标签中添加 meta 配置。

1
2
3
<meta http-equiv="pragram" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="expires" content="0" />
阅读全文 »

注册账号

DockerHub 官网注册账号,该账号是免费注册的。

创建个人仓库

登录 DockerHub 的官网,创建新的镜像仓库。

阅读全文 »

大纲

前言

在开发或学习时,有时候想编写一个数据库操作的小 Demo,但又不想利用 MySQL、Oracle 等数据库进行建库建表操作,因为只想写个小案例,感觉没必要弄个很大很麻烦的数据库。而且这个案例中的数据用完之后就不再需要了,所以也不需要进行数据的持久化操作。那有没有什么方案可以满足这个需求呢?答案是肯定的,H2 是一款内存数据库,适合在学习阶段、开发阶段调试代码使用,并不适用于生产阶段,可以满足学习与调试代码的需求。

阅读全文 »

前言

初始化数据库

在 MySQL 执行 XXL-JOB GitHub 仓库中的 SQL 初始化脚本,初始化完成后一共有 8 张表

表名称描述
xxl_job_group 执行器信息表,用于维护任务执行器的信息
xxl_job_info 调度扩展信息表,用于存储调度任务的扩展信息,比如任务分组、任务名、机器的地址等
xxl_job_lock 任务调度锁表
xxl_job_log 日志表,用于存储任务调度的历史信息,例如调度结果、执行结果、调度入参等
xxl_job_log_report 日志报表,用于存储任务调度的日志报表,会在调度中心里的报表功能里使用到
xxl_job_logglue 任务的 GLUE 日志,用于存储 GLUE 日志的更新历史变化,支持 GLUE 版本的回溯功能
xxl_job_registry 执行器的注册表,用在维护在线的执行器与调度中心的地址信息
xxl_job_user 系统的用户表,可以用表中默认的用户名与密码进行登录
阅读全文 »

大纲

前言

什么是任务调度

任务调度就是我们常说的定时任务,定时任务是指在指定时间、指定的频率去执行任务(业务代码)。任务调度是日常开发中非常常见的一个业务场景,我们经常需要去运行一些的周期性、指定时间点等方式自动触发的异步业务逻辑。

集中式任务调度

集中式任务是与分布式任务恰好相反的概念,集中式任务就是单机任务,一个项目,一台机器,也就是我们常说的单体应用。对于集中式任务,也就是我们 Java 开发中常见的定时任务。

阅读全文 »

前言

为了实现不同环境构建的不同需求,这里使用到了 Maven 的 Profile 特性。因为 Profile 能够在构建时修改 POM 的一个子集,或者添加额外的配置元素。接下来将介绍 Maven 中对 Profile 的配置和激活。

阅读全文 »

大纲

JVM 简单介绍

JVM 内存结构

JVM 内存结构主要有三大块:栈、堆内存、方法区。堆内存是 JVM 中最大的一块。方法区存储类信息、静态变量、常量、常量池等数据,是线程共享的区域,为了与 Java 堆区分,方法区还有一个别名 Non-Heap (非堆)。栈又分为 Java 虚拟机栈和本地方法栈,主要用于方法的执行。

阅读全文 »

SpringBoot 3 新版本

2022 年 11 月 24 日,SpringBoot 3.0 正式发布了。此版本包含了 12 个月以来 151 个人的 5700 多次 Commit 的工作结晶。这是自 4.5 年前发布 2.0 以来,Spring Boot 的第一次重大修订。它也是第一个支持 Spring Framework 6.0 和 GraalVM 的 Spring Boot GA 版本。

新变化

  • 响应式编程
  • 支持 Spring Framework 6.0
  • 支持 GraalVM native images
  • Spring 自身与第三方包版本升级
  • 最低支持 JDK 17,最高支持 JDK 19
  • 从 Java EE API (Javax) 迁移到 Jakarta EE API
  • 自动配置的包位置变化
    • 旧版本: META-INF/spring.factories
    • 新版本: META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
阅读全文 »

大纲

前言

性能指标

  • RT (Response Time):用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。
  • HPS (Hits Per Second):每秒点击的次数,单位是次 / 秒。
  • TPS (Transaction per Second):系统每秒处理交易 (事务) 的笔数,单位是笔 / 秒。
  • QPS (Query per Second):系统每秒处理查询的次数,单位是次 / 秒。
阅读全文 »
0%