diff options
author | mayx | 2024-10-04 06:19:24 +0000 |
---|---|---|
committer | mayx | 2024-10-04 06:19:24 +0000 |
commit | 443d65ac50137666963a3c6b7445c4d40253a8c0 (patch) | |
tree | 9ba839465fc042876ccf8de646d4986ad8932ba6 | |
parent | c8ce8de1d9b36899e19ca16c9095f1c2ff19d893 (diff) |
Update 4 files
- /_layouts/default.html - /_layouts/post.html - /js/main.js - /_posts/2024-10-01-suggest.md
-rw-r--r-- | _layouts/default.html | 4 | ||||
-rw-r--r-- | _layouts/post.html | 26 | ||||
-rw-r--r-- | _posts/2024-10-01-suggest.md | 2 | ||||
-rw-r--r-- | js/main.js | 24 |
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); |