來自搞起博客
由來
那時候還很無知,雖然發(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:00
浊竟,8月20日 13:00
這個樣子了,那么這個title
感覺很好解釋了津畸,超過1小時候拿這title
來替換掉其中的yyyy-MM-dd
部分振定,就成了稍微久遠點的人性化時間。
總結(jié)
其實一些不錯的產(chǎn)品很值得琢磨的肉拓,不管是用戶體驗也好后频,優(yōu)化也好