V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ohyeahhh
V2EX  ›  程序员

某浪微博的 @跟话题是怎么存起来的?

  •  
  •   ohyeahhh · 73 天前 · 1871 次点击
    这是一个创建于 73 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目需要做一个跟微博一样的功能,发动态的时候可以 @用户,还可以添加话题,而且点击 @的用户或者话题能够跳转,这种需要怎么存的,初步想法是给这俩加上 html 标签,因为还要变色。背景是要给 app 内用的,我们用 h5 页面来实现

    12 条回复    2020-09-23 03:52:02 +08:00
    laoyur
        1
    laoyur   73 天前 via Android
    说起来可能很丢人,一大段经过了多次转推多次 at 的长内容,我甚至都分不清哪段话是谁说的……
    TomatoYuyuko
        2
    TomatoYuyuko   73 天前
    遇到过同款 tx 面试题,我的当时的回答是记录特殊符号的位置,全文存储字符串,再加一个特殊位置的存储,渲染的时候再处理成特殊标签
    huifer
        3
    huifer   73 天前
    @返回的信息如下{"id":1,"login_name":"huifer"}, 前端将 login_name 用来放在页面上显示. 贴上<a>标签或者其他跳转标签. 将整个文本存储到 DB. # 也是类似操作

    github 上的一个地址

    <p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/huifer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/huifer">@huifer</a> test</p>

    具体如果还想存储的详细一些,可以将 @和#切割出来. 在存储
    [{"@index":1,value:"user_id"}]
    opengps
        4
    opengps   73 天前
    就是个关键字替换逻辑, @id+空格,检索下是否包含此 id 用户,数据库只存文本应该足够,数据库处理通知逻辑
    mingyec88
        5
    mingyec88   73 天前
    @laoyur 原来有这困惑的不是我一个人哈哈哈
    janda
        6
    janda   73 天前
    @huifer 相当于是数据库存储富文本是吧、然后显示的时候就解析成 html
    huifer
        7
    huifer   72 天前
    @janda yep 从存储上直接放富文本还是蛮快的. 或者 占位符 然后通过后面的 json 将占位符替换掉
    poorcai
        8
    poorcai   72 天前 via iPhone
    我也想知道。话说 v 站是不是也有这个功能?
    v2exblog
        9
    v2exblog   72 天前
    同问,这种东西在大流量高并发下是怎么实现的
    songco
        10
    songco   72 天前 via iPhone
    原文存储,展示时解析转换不就挺好

    我记得这玩意比较麻烦的是量大的时候怎么通知 followers 还有被 @的人
    no1xsyzy
        11
    no1xsyzy   72 天前
    @songco 这个好像 reddit 写过一篇技术文章?只记得用的 kafka
    no1xsyzy
        12
    no1xsyzy   72 天前
    目前看下来最稳健的还是 Twitter 的办法。
    前端时间回过一贴 https://www.v2ex.com/t/704946#r_9470684
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4771 人在线   最高记录 5298   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:17 · PVG 15:17 · LAX 23:17 · JFK 02:17
    ♥ Do have faith in what you're doing.