Mark New Comments |
August 31st, 2014 |
comments, tech |
One solution is for the page to keep track of when you last visited, and highlight any comments that have been posted since then. I first saw this on lesswrong, more recently it's been added to slate star codex, and now I've added it to the comments here:
See how there's a little black line to the left of Alex's comment? That means it was posted more recently than the last time I visited the page.
Warning: boring technical details follow.
While you could do this sort of thing with local storage, I wanted this to work on as many browsers as possible, so I used cookies. The key bit of javascript is this:
var last_visit = document.cookie.replace( /(?:(?:^|.*;\s*)jtk_last_visit\s*\=\s*([^;]*).*$)|^.*$/, "$1"); var current_time = new Date().getTime(); var one_year_gmt_str = new Date(current_time + 31536000000).toGMTString(); document.cookie = "jtk_last_visit=" + current_time + "; path=" + window.location.pathname + "; expires=" + one_year_gmt_str;What does this do? The first line reads the cookie
jtk_last_visit
if the browser sent it. If no value was sent
it will just be ""
. (The crazy regex comes from an MDN
post.) The next three lines set the jtk_last_visit
cookie to the current time, make it expire one year later, and
restrict the path to be for this page only. That's important:
otherwise visiting any page on the site would clear your highlighted
comments.
Now you have some javascript that does:
var comment_is_new = last_visit.length > 0 && comment_epoch_ts > last_visit/1000;And you mark up the comments based on
comment_is_new
.
Comment via: google plus, facebook