有什么方法可以重置链接的访问状态?
场景是这样的:在自然有很多链接的内部网站上,我们希望链接仅在一段设定的时间段内具有“已访问”状态。因此,我正在寻找一种方法来操纵链接的访问状态。
这可行吗?当然应该是跨浏览器的。
ETA:客户端解决方案是完全可以接受的。甚至更喜欢.. :-)
ETA-2:允许使用 Cookie。这里没有禁止:-)
原文由 erlando 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答936 阅读✓ 已解决
2 回答892 阅读✓ 已解决
3 回答538 阅读✓ 已解决
当浏览器选择应用
:visited
CSS 伪类 时,链接显示为“已访问”。将链接重置为未访问状态的客户端方法是(以某种方式)清除浏览历史记录。得知有一种可移植的方法可以做到这一点,我会感到非常惊讶。它还具有令人不快的副作用,例如削弱对历史敏感的智能位置栏(如 Firefox 3 中的位置栏)的行为。
正如 Drew Noakes 所建议的,服务器端的方法是向链接添加一些噪音查询参数,并定期更改查询参数。这只会给出您想要的行为的错误近似值。要获得“正确”的行为,您需要在服务器端跟踪每个用户访问过的页面的历史记录,这样您就可以仅在必要的时间后更改特定页面的噪声参数。
总而言之,实际尝试“重置链接的访问状态”很可能是个坏主意。
我认为更好的解决方案是调整页面样式,使 :visited 伪类呈现与 :link 伪类相同的效果。然后保留每个用户访问链接的服务器端历史记录,并使用显式
visited
类调整链接的显示。如果您没有方便的用户身份,并且不想要求登录,您始终可以使用随机持久性 cookie。