Go to file
Takagi a28c9a9781
pref: optimize the caching functionality of content editing (#4458)
#### What type of PR is this?

/kind improvement

#### What this PR does / why we need it:

本 PR 优化了文章、内容编辑时的本地缓存功能,之前内容对于本地缓存的依赖性非常强,因此导致了部分问题,如 #3820 ,本 PR 计划之后本地缓存将仅用于特殊情况下的内容恢复,因此尝试做了如下修改:
1. 当前正在编辑的文章,会在正常模式(切换路由、刷新页面、失去当前窗口焦点、停止编写一定时间均属于正常模式)下进行自动保存后删除本地缓存。
2. 若本地具有缓存,则会在进入编辑页面时,比对一次 content 的 version,若缓存 version 小于线上 version,则抛弃缓存,若一致,则使用缓存。

但经过测试,本 PR 无法解决如下问题:
1. 同时编辑一篇文章时,内容会被覆盖的问题。
2. 对比版本后会抛弃缓存,而实际上应当将本地缓存加入历史版本中。

#### How to test it?

1. 新建一篇文章,编写任意内容,返回文章页查看是否已经具有新的文章,且内容已被保存。
2. 修改一篇文章的内容,然后返回文章页,查看是否不是从缓存中加载。
3. 断网模式下修改一篇文章的内容,然后返回文章页,联网后,再次打开此文章,查看是否显示从缓存中加载。
4. 断网模式下修改一篇文章的内容,然后返回文章页。在另一个浏览器或页面修改此文章并保存后,回到断网页面联网后,查看是否更新为最新内容。

#### Which issue(s) this PR fixes:

Fixes #3820 
Fixes #4223 

#### Does this PR introduce a user-facing change?
```release-note
减少内容编辑对本地缓存依赖,支持内容自动保存至服务端。
```
2023-08-25 16:18:16 +00:00
.github chore: add sponsorship entry and sponsor image (#4233) 2023-07-16 16:14:19 +00:00
api Refine search result by customizing analyzer (#4456) 2023-08-25 15:46:12 +00:00
application Refine search result by customizing analyzer (#4456) 2023-08-25 15:46:12 +00:00
buildSrc Support publishing to maven central repository (#3767) 2023-04-18 14:28:23 +08:00
config/checkstyle chore: add checkstyle rule (#2091) 2022-05-17 06:46:11 +00:00
console pref: optimize the caching functionality of content editing (#4458) 2023-08-25 16:18:16 +00:00
docs Support backup and restore (#4206) 2023-07-24 08:26:16 +00:00
gradle/wrapper Upgrade to Gradle 8.0.2 (#3543) 2023-03-21 02:44:27 +00:00
hack chore: add cherry_pick_pull.sh for cherry-picking pull request (#1554) 2021-12-03 10:21:24 +08:00
platform Refine search result by customizing analyzer (#4456) 2023-08-25 15:46:12 +00:00
.dockerignore Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00
.editorconfig Support backup and restore (#4206) 2023-07-24 08:26:16 +00:00
.gitattributes Refactor .gitignore 2019-04-03 11:37:59 +08:00
.gitignore Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00
CODE_OF_CONDUCT.md docs: add CODE_OF_CONDUCT.md (#2150) 2022-06-12 08:10:12 +00:00
CONTRIBUTING.md chore: add cherry_pick_pull.sh for cherry-picking pull request (#1554) 2021-12-03 10:21:24 +08:00
Dockerfile Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00
LICENSE Create LICENSE 2018-03-21 21:39:46 +08:00
OWNERS chore: add @LIlGG to reviewers list (#3292) 2023-02-13 01:48:18 +00:00
README.md docs: add ProductHunt badge in README.md (#4463) 2023-08-23 06:28:14 +00:00
SECURITY.md docs: update SECURITY.md for Halo 2.x (#3780) 2023-04-19 02:47:00 +00:00
gradle.properties Prepare for developing Halo 2.9.0 (#4344) 2023-08-01 07:33:45 +00:00
gradlew Upgrade to Gradle 8.0.2 (#3543) 2023-03-21 02:44:27 +00:00
gradlew.bat Upgrade to Gradle 8.0.2 (#3543) 2023-03-21 02:44:27 +00:00
settings.gradle Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00

README.md

Halo logo

Halo [ˈheɪloʊ],强大易用的开源建站工具。

GitHub release Docker pulls GitHub last commit GitHub Workflow Status Codecov percentage Halo - Powerful and easy-to-use Open-Source website building tool | Product Hunt
官网 文档 社区 Gitee Telegram 频道


快速开始

docker run \
  -it -d \
  --name halo \
  -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 \
  halohub/halo:2.8 \
  --halo.security.initializer.superadminusername=admin \
  --halo.security.initializer.superadminpassword=P@88w0rd

以上仅作为体验使用,详细部署文档请查阅:https://docs.halo.run/getting-started/install/docker-compose

在线体验

生态

可访问 官方应用市场awesome-halo 仓库 查看已经适用于 Halo 2.x 的主题和插件,以及适用于 Halo 1.x 的相关仓库。

许可证

license

Halo 使用 GPL-v3.0 协议开源,请遵守开源协议。

赞助

如果 Halo 对你有帮助,欢迎赞助我们,感谢以下赞助者对 Halo 项目的支持:

sponsors

贡献

参考 CONTRIBUTING

状态

Repobeats analytics