來自搞起博客
由來
那時候還很無知,雖然發(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)化也好