这个问题比较模糊,不确定是从数据上面记录还是视觉上体现。
朋友说 CSS
JS
服务端
CSS 我觉得应该是
:visited
,类似大概实现,但是肯定有visited 隐私问题
那关于 JS 如何实现呢,需要讲明数据流(懵)?
服务端是通过 cookie 么,模拟的是百万条数据,具体实现?
有没有比较详细的解析,指点一二,面试一般都挖的很深。
发现每次都是饭点问问题,很快就沉了,也是尴尬。
这个问题比较模糊,不确定是从数据上面记录还是视觉上体现。
朋友说 CSS
JS
服务端
CSS 我觉得应该是 :visited
,类似大概实现,但是肯定有 visited 隐私问题
那关于 JS 如何实现呢,需要讲明数据流(懵)?
服务端是通过 cookie 么,模拟的是百万条数据,具体实现?
有没有比较详细的解析,指点一二,面试一般都挖的很深。
发现每次都是饭点问问题,很快就沉了,也是尴尬。
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.2k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
如果面试的是服务端开发,应该不会考你视觉上的体现,是考你如何记录这个问题;如果是面试前端,那考视觉体现也是可能的。
前端来说,虽然
:visited
可以记录哪些点击过,哪些没点击过,但是这个记录并不准备,各个浏览器的处理也不一样,而且一旦清了记录,就不再有效了。所以如果前端要记录的话,最好还是考虑 localStorage(当然清了也失效)。cookie也不是不可能,但 cookie 不适合量较大的数据。后端来说,这个数据主要是记录在数据库中,处理起来比较复杂。对于关系型数据库来说,最直接的就是记录一个数据 ID 和用户 ID 的关系表,这个表中存在某个数据 ID 和某个 用户 ID 对应的记录,就说明这个数据是这个用户点击过的。当然这张表肯定是巨大的,10万数据和10万用户的情况下这个关系表的数据就是百亿级的……
另外一种方式是采用 NoSQL 数据库的方式(关系型数据库也可以模拟),每个数据后面跟一个点击了的用户列表。或者对每个用户,保存一个点击地的数据ID列表。但即使这样,数据量也是巨大的,关键不在于数据条数,而在于每条数据占用的字节会很大。
目前为止我是没想到更好的办法。