summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormayx <mayx@outlook.com>2024-10-04 08:19:24 +0200
committermayx <mayx@outlook.com>2024-10-04 08:19:24 +0200
commit443d65ac50137666963a3c6b7445c4d40253a8c0 (patch)
tree9ba839465fc042876ccf8de646d4986ad8932ba6
parentc8ce8de1d9b36899e19ca16c9095f1c2ff19d893 (diff)
Update 4 files
- /_layouts/default.html - /_layouts/post.html - /js/main.js - /_posts/2024-10-01-suggest.md
-rw-r--r--_layouts/default.html4
-rw-r--r--_layouts/post.html26
-rw-r--r--_posts/2024-10-01-suggest.md2
-rw-r--r--js/main.js24
4 files changed, 28 insertions, 28 deletions
diff --git a/_layouts/default.html b/_layouts/default.html
index 509ef6a..20595ac 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -28,11 +28,11 @@
gtag('config', '{{ site.google_analytics }}');
var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}");
function getSearchJSON(callback) {
- var searchData = JSON.parse(localStorage.getItem(lastUpdated));
+ var searchData = JSON.parse(localStorage.getItem("blog_" + lastUpdated.valueOf()));
if (!searchData) {
localStorage.clear();
$.getJSON("/search.json", function (data) {
- localStorage.setItem(lastUpdated, JSON.stringify(data));
+ localStorage.setItem("blog_" + lastUpdated.valueOf(), JSON.stringify(data));
callback(data);
});
} else {
diff --git a/_layouts/post.html b/_layouts/post.html
index 59835ee..2ad1fdd 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -82,7 +82,31 @@ layout: default
{% endif %}
<br />
<br />
-<p id="suggest-container"><button onclick="getSuggestBlog('{{ page.url }}')">查看推荐文章</button></p>
+<p id="suggest-container"></p>
+<script>
+var blogurl = "{{ page.url }}";
+var suggest = $("#suggest-container")[0];
+suggest.innerHTML = "Loading...";
+$.get(BlogAPI + "/suggest?id=" + blogurl + "&update=" + lastUpdated.valueOf(), function (data) {
+ if (data.length) {
+ getSearchJSON(function (search) {
+ suggest.innerHTML = '<b>推荐文章</b><hr style="margin: 0 0 5px"/>';
+ const searchMap = new Map(search.map(item => [item.url, item]));
+ const merged = data.map(suggestObj => {
+ const searchObj = searchMap.get(suggestObj.id);
+ return searchObj ? { ...searchObj } : null;
+ });
+ merged.forEach(element => {
+ if (element) {
+ suggest.innerHTML += "<a href=" + element.url + ">" + element.title + "</a> - " + element.date + "<br />";
+ }
+ });
+ });
+ } else {
+ suggest.innerHTML = "暂无推荐文章……";
+ }
+});
+</script>
<div class="pagination">
{% if page.previous.url %}
<span class="prev">
diff --git a/_posts/2024-10-01-suggest.md b/_posts/2024-10-01-suggest.md
index 14c3bb2..927cebe 100644
--- a/_posts/2024-10-01-suggest.md
+++ b/_posts/2024-10-01-suggest.md
@@ -49,7 +49,7 @@ function getSearchJSON(callback) {
}
}
```
- 做好这个之后就可以做文章推荐的功能了,不过文章推荐应不应该加载完页面就加载呢?其实我测了一下Vectorize数据库的查询速度,不算很慢,但还是需要时间,另外免费版我看了下额度是每月3000万个查询的向量维度,这个其实我没看太懂😂。另外Cloudflare不知道为什么没有展示免费版剩余的额度,而且它是按月计算的,导致我不敢乱用这个查询。所以我想了一下还是给个按钮来调用吧。最终调用的函数如下:
+ 做好这个之后就可以做文章推荐的功能了,不过文章推荐应不应该加载完页面就加载呢?其实我测了一下Vectorize数据库的查询速度,不算很慢,但还是需要时间,另外免费版我看了下额度是每月3000万个查询的向量维度,这个其实我没看太懂😂。另外Cloudflare不知道为什么没有展示免费版剩余的额度,而且它是按月计算的,导致我不敢乱用这个查询。 ~~所以我想了一下还是给个按钮来调用吧~~ (后来想了一下干脆直接调用然后加个缓存吧,毕竟我文章不变推荐也不会变)。最终调用的函数如下:
```javascript
function getSuggestBlog(blogurl) {
var suggest = $("#suggest-container")[0];
diff --git a/js/main.js b/js/main.js
index 00ca4e0..c27bf3a 100644
--- a/js/main.js
+++ b/js/main.js
@@ -42,30 +42,6 @@ $(function () {
}
});
-function getSuggestBlog(blogurl) {
- var suggest = $("#suggest-container")[0];
- suggest.innerHTML = "Loading...";
- $.get(BlogAPI + "/suggest?id=" + blogurl, function (data) {
- if (data.length) {
- getSearchJSON(function (search) {
- suggest.innerHTML = '<b>推荐文章</b><hr style="margin: 0 0 5px"/>';
- const searchMap = new Map(search.map(item => [item.url, item]));
- const merged = data.map(suggestObj => {
- const searchObj = searchMap.get(suggestObj.id);
- return searchObj ? { ...searchObj } : null;
- });
- merged.forEach(element => {
- if (element) {
- suggest.innerHTML += "<a href=" + element.url + ">" + element.title + "</a> - " + element.date + "<br />";
- }
- });
- });
- } else {
- suggest.innerHTML = "暂无推荐文章……";
- }
- });
-}
-
today = new Date();
timeold = (today.getTime() - lastUpdated.getTime());
secondsold = Math.floor(timeold / 1000);