用localStorage给typecho加上历史访问

给主题加上历史访问记录,这个功能一定程度上可以挽留一下读者,比如:某位大佬经常通过搜索引擎进来我站,可能发现以前在这里也看过一些文章,比较合他口味,久而久之就能发展成常客。

之前有个类似的文章教程:

用 localStorage 实现浏览记录,访问过的历史文章
用户在历史浏览记录中可以看到最近他在这个网站看过的几个文章。 ![1.jpg][1] 是用 localStorage 实现的,网上找了找实例,自己改了改在 t…
实践起来不复杂,里面的代码复制出来,比如viewhistory.js,引入到网站中,最好是头部部分,这样加载的生成的文章会比较优先

效果如下:

QQ图片20201115170330.png

网站中要显示的历史文章位置放入

您刚刚看过如下文章:

这里的位置就是会加载历史访问过的文章显示的位置

最后关键的部分是这一段js函数

limit 用于记录显示的条数和存储的条数,可自行修改条数

storyageKey 用于配置需要显示的id,也代表着localStorage保存这些历史记录的为一个值

primaryKey 用户表示存储字段中以什么字段作为数据唯一的判断(一般以url)

addHistory 是否添加历史记录,一般主页不需要保存,而文章页需要保存

如果你用的是 typecho 那可以用下面逻辑判断:

addHistory: <?php if ($this->is('post')) { ?> true <?php }else{ ?>false<?php } ?>,

titleSplit用于表示标题以什么作为切割,切割之后取第一截。

其中

addHistory: <?php if ($this->is('post')) { ?> true <?php }else{ ?>false<?php } ?>,
这一段的意思是只有在文章的时候,会被收录,如果其他的页面也要收录,那就设置为true就行了

大概就那么多,也可以操作viewhistory文件去记录图片,访问量,作者,描述等……

这个功能实现非常简单,实现方法也很多,比如可以将内容保存在 cookie 中,但用 cookie 储存存在一些问题。cookie 是随 HTTP 响应一起被发送的, 会对服务器端响应时间产生一定程度的影响。

其实利用 cookie 是最实用的,因为几乎可以兼容所有浏览器。我这里使用的 localStorage,数据完全保存在浏览器中,不会有影响服务器响应, 但是在 IE6/7 中不能使用!

文章来源:https://www.dpaoz.com/730

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
localStorage和sessionStorage是JavaScript中的两个对象,用于在浏览器中存储数据。它们提供了一种在浏览器会话期间(sessionStorage)或者永久保存(localStorage)数据的方式。 通过localStorage和sessionStorage对象,可以进行以下操作: 1. 存储数据:使用setItem()方法将数据存储到localStorage或sessionStorage中。例如: ```javascript localStorage.setItem('key', 'value'); // 存储到localStorage sessionStorage.setItem('key', 'value'); // 存储到sessionStorage ``` 2. 获取数据:使用getItem()方法从localStorage或sessionStorage中获取存储的数据。例如: ```javascript var value = localStorage.getItem('key'); // 从localStorage获取数据 var value = sessionStorage.getItem('key'); // 从sessionStorage获取数据 ``` 3. 更新数据:使用setItem()方法更新已存储的数据。例如: ```javascript localStorage.setItem('key', 'new value'); // 更新localStorage中的数据 sessionStorage.setItem('key', 'new value'); // 更新sessionStorage中的数据 ``` 4. 删除数据:使用removeItem()方法从localStorage或sessionStorage中删除指定的数据。例如: ```javascript localStorage.removeItem('key'); // 从localStorage删除指定的数据 sessionStorage.removeItem('key'); // 从sessionStorage删除指定的数据 ``` 5. 清空数据:使用clear()方法清空localStorage或sessionStorage中的所有数据。例如: ```javascript localStorage.clear(); // 清空localStorage中的所有数据 sessionStorage.clear(); // 清空sessionStorage中的所有数据 ``` 需要注意的是,localStorage中存储的数据在浏览器关闭后仍然存在,而sessionStorage中存储的数据只在当前会话期间有效,即当用户关闭浏览器标签页或窗口时会被清除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值