新浪微博的時間是怎么實時變化的

來自搞起博客

由來

那時候還很無知,雖然發(fā)現(xiàn)了有這么一個用戶體驗不錯的細節(jié),可惜開動了小腦經(jīng)也并不知道怎么玩的。

場景

地點:新浪微博
事件:發(fā)現(xiàn)每條微博的時間都會不斷的自己變咧!這樣就算你放了N久,也會知道這條微博是到底什么時候發(fā)的,不用再去刷新頁面了。

問題

是怎么能實現(xiàn)批量更新時間的呢?
通常都是在服務(wù)端查詢后根據(jù)時間算出對應(yīng)的人性化時間,“幾秒前”“*分鐘前”等等。
而這樣的字符串是很難再哪來二次計算的。

分析

時間的代碼片段
時間的代碼片段

上面是時間的代碼片段,簡單看一下,跟時間有關(guān)系的屬性,只有title,date,node-tpye,這三個屬性:

  • title 從值看來是年月日時分的格式化后的字符串
  • date 時間戳
  • node-type 從值來看應(yīng)該算是表示了某一類的類名

通常來講,用時間戳來計算是最方便的,因為他是以毫秒為單位,而天、時、分、秒都可以用毫秒來表示,而超過了某個單位的最大值,比如一分鐘前的微博,用現(xiàn)在的時間戳減去之前的時間戳,大于60000毫秒的話,那么肯定就是一分鐘前了。

而找到這些元素只需要通過找到node-type屬性為feed_list_item_date的元素再獲取date屬性計算后改變即可。

這里我是嘗試了一下把feed_list_item_date改為feed_list_item_date1他的時間就不變了,而其他的已然在周期性的變化,改回去之后又在周期的變化。


補充

然而有個事被我差點忘記了,就是這個title屬性,為毛沒有講是干啥用的,我開始也沒想明白,而后來我看到了這個

時間格式化
時間格式化

我好像有點明白了,我又觀察了一下,在一個小時內(nèi),時間是會顯示xx分鐘前的,但是超過了一個小時之后,時間就會變成今天 13:00, 昨天 13:008月20日 13:00這個樣子了,那么這個title感覺很好解釋了,超過1小時候拿這title來替換掉其中的yyyy-MM-dd部分,就成了稍微久遠點的人性化時間。

總結(jié)

其實一些不錯的產(chǎn)品很值得琢磨的,不管是用戶體驗也好,優(yōu)化也好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容