这是一个创建于 4270 天前的主题,其中的信息可能已经有所发展或是发生改变。
这里说的国内微博只测试了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
|
|
1
messense 2013-04-16 16:30:10 +08:00 via iPhone
没有换行少了类似 Twitter Art 的那种乐趣了。
|
|
|
3
lyric 2013-04-28 14:08:53 +08:00
twitter 是最近才用「编辑器」代替 textarea 的。也是最近才支持正文换行的。 twitter 对 url 的处理之前一直很 buggy。
|