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