mirror of
				https://github.com/Mabbs/mabbs.github.io
				synced 2025-10-30 05:21:41 +08:00 
			
		
		
		
	Update 4 files
- /_layouts/default.html - /_layouts/post.html - /js/main.js - /_posts/2024-10-01-suggest.md
This commit is contained in:
		
							parent
							
								
									c8ce8de1d9
								
							
						
					
					
						commit
						443d65ac50
					
				| @ -28,11 +28,11 @@ | |||||||
|   gtag('config', '{{ site.google_analytics }}'); |   gtag('config', '{{ site.google_analytics }}'); | ||||||
|   var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}"); |   var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}"); | ||||||
|   function getSearchJSON(callback) { |   function getSearchJSON(callback) { | ||||||
|     var searchData = JSON.parse(localStorage.getItem(lastUpdated)); |     var searchData = JSON.parse(localStorage.getItem("blog_" + lastUpdated.valueOf())); | ||||||
|     if (!searchData) { |     if (!searchData) { | ||||||
|       localStorage.clear(); |       localStorage.clear(); | ||||||
|       $.getJSON("/search.json", function (data) { |       $.getJSON("/search.json", function (data) { | ||||||
|           localStorage.setItem(lastUpdated, JSON.stringify(data)); |           localStorage.setItem("blog_" + lastUpdated.valueOf(), JSON.stringify(data)); | ||||||
|           callback(data); |           callback(data); | ||||||
|       }); |       }); | ||||||
|     } else { |     } else { | ||||||
|  | |||||||
| @ -82,7 +82,31 @@ layout: default | |||||||
| {% endif %} | {% endif %} | ||||||
| <br /> | <br /> | ||||||
| <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"> | <div class="pagination"> | ||||||
|   {% if page.previous.url %} |   {% if page.previous.url %} | ||||||
|   <span class="prev"> |   <span class="prev"> | ||||||
|  | |||||||
| @ -49,7 +49,7 @@ function getSearchJSON(callback) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|   做好这个之后就可以做文章推荐的功能了,不过文章推荐应不应该加载完页面就加载呢?其实我测了一下Vectorize数据库的查询速度,不算很慢,但还是需要时间,另外免费版我看了下额度是每月3000万个查询的向量维度,这个其实我没看太懂😂。另外Cloudflare不知道为什么没有展示免费版剩余的额度,而且它是按月计算的,导致我不敢乱用这个查询。所以我想了一下还是给个按钮来调用吧。最终调用的函数如下:    |   做好这个之后就可以做文章推荐的功能了,不过文章推荐应不应该加载完页面就加载呢?其实我测了一下Vectorize数据库的查询速度,不算很慢,但还是需要时间,另外免费版我看了下额度是每月3000万个查询的向量维度,这个其实我没看太懂😂。另外Cloudflare不知道为什么没有展示免费版剩余的额度,而且它是按月计算的,导致我不敢乱用这个查询。 ~~所以我想了一下还是给个按钮来调用吧~~ (后来想了一下干脆直接调用然后加个缓存吧,毕竟我文章不变推荐也不会变)。最终调用的函数如下:    | ||||||
| ```javascript | ```javascript | ||||||
| function getSuggestBlog(blogurl) { | function getSuggestBlog(blogurl) { | ||||||
|     var suggest = $("#suggest-container")[0]; |     var suggest = $("#suggest-container")[0]; | ||||||
|  | |||||||
							
								
								
									
										24
									
								
								js/main.js
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								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(); | today = new Date(); | ||||||
| timeold = (today.getTime() - lastUpdated.getTime()); | timeold = (today.getTime() - lastUpdated.getTime()); | ||||||
| secondsold = Math.floor(timeold / 1000); | secondsold = Math.floor(timeold / 1000); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 mayx
						mayx