V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
deathfang
V2EX  ›  问与答

对比下twitter和国内微博信息显示的不同

  •  
  •   deathfang · 2013-04-16 15:58:10 +08:00 · 3277 次点击
    这是一个创建于 4262 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这里说的国内微博只测试了QQ和weibo.com
    发送框
    twitter是个“编辑器”,国内微博都是textarea
    twitter的可以高亮url,超出140字范围的区域有警告高亮提示

    这里QQ微博有一点不同,刚发的微博不刷新页面下删除,发送框会还原内容
    但刷新后再删除就没了(貌似和本地储存功能冲突)

    信息流展示
    url的处理,看到QQ的一个iWeibo里的正则是
    new RegExp("((news|telnet|nttp|file|http|ftp|https)://){1}(([-A-Za-z0-9]+(\\.[-A-Za-z0-9]+)*(\\.[-A-Za-z]{2,5}))|([0-9]{1,3}(\\.[0-9]{1,3}){3}))(:[0-9]*)?(/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*)*", "gi");
    这正则支持多协议但一定要有协议才能识别为url
    twitter的无协议也可以识别但http外的貌似不识别
    国内微博都有短网址服务
    twitter的简化url (移除http://www) 显示部分字符再title提示

    twitter的信息流都有 white-space: pre-wrap的样式,国内微博则把换行符换成了空格

    疑问:国内微博使用上面那类正则是为了配合 短网址服务?
    信息流无换行效果是为了符合中文美观?
    第 1 条附言  ·  2013-04-28 10:31:38 +08:00
    又发现一点:每条tweet显示的短时间都会变化,个人感觉这个递增显示是5s 10s 30s 1min 1h变化,至于1day就不太清楚了

    自己写了个 简易实现:momentjs(含twitter插件) + jQuery

    var TimesMS = {
    day: 864e5,
    hour: 36e5,
    minute: 6e4,
    second: 1e3
    }
    //所有信息流父级元素 postList, 短时间 .time
    //后台输出 为 <a href="" title="13年4月28日, 10:08 上午" data-time="1367114901721" class="time">24分</a> 这样的格式

    postList.find(".time").each(function(){
    var postTime = $(this);
    var time = moment(postTime.data('time'));
    var interval = 5000,inc = 2;
    function renderTime(){
    if (moment().diff(time)/(TimesMS.day) > 1) return;
    postTime.html(time.twitter());
    setTimeout(renderTime,interval);
    if (inc && interval < 30000) {
    interval = interval *inc;
    inc++;
    }else if(interval == 30000){
    interval = 15000;
    inc = 0;
    }
    else{
    $.each(TimesMS,function(k,v){
    moment().diff(time)/v > 1 && (interval = v);
    })
    }
    }
    renderTime()
    })
    第 2 条附言  ·  2013-04-28 10:42:55 +08:00
    ------------------

    时间显示测试不严谨,微博都实现了,QQ微博的稍微不智能点,需要更新下 新增的微博 就有了
    4 条回复    1970-01-01 08:00:00 +08:00
    messense
        1
    messense  
       2013-04-16 16:30:10 +08:00 via iPhone
    没有换行少了类似 Twitter Art 的那种乐趣了。
    dorentus
        2
    dorentus  
       2013-04-16 17:25:38 +08:00   ❤️ 1
    twitter 也是前不久才支持信息流内换行的

    ref: https://twitter.com/twitter/status/311902625606033410
    lyric
        3
    lyric  
       2013-04-28 14:08:53 +08:00
    twitter 是最近才用「编辑器」代替 textarea 的。也是最近才支持正文换行的。
    twitter 对 url 的处理之前一直很 buggy。
    deathfang
        4
    deathfang  
    OP
       2013-05-02 12:35:39 +08:00
    @lyric buggy?
    http://jsfiddle.net/deathfang/DTEtV/1/
    发个demo,反正我觉得比国内微博对url的判断要好多了 比如我只想输入个qq.com……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2444 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:21 · PVG 23:21 · LAX 07:21 · JFK 10:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.