Is HN designed for fast readers?
My usage of the site usually involves reading half a dozen or so articles on the front 'page', then maybe dipping nto the comments to see what others are saying. After I've exhausted the first page in this way, I'll click the "More" button to go to page two.
At this point I often get an unfriendly empty page with Unknown or expired link. and can see from the URL my browser is trying to load that HN seems to be using a session ID, which has presumably timed out while I was reading page one.
What exactly is happening here and why is it implemented in this [broken?] way? I realise that with dynamic content, it is necessary to force the browser to refresh the page, rather than load from cache, but this is usually done with some simple trick like appending a timestamp to the URL. Why does HN use a different [and seemingly less user-friendly] approach?
5 comments
[ 2.8 ms ] story [ 18.9 ms ] threadtraditionally people used links like ?start=10, however if new items were added in between the time you loaded the page and the time you clicked the link you would see them on the second page if the result set were sorted by newest first DESC
so then ppl used things like ?afterID=10thID, however that doesnt really work with a site with a voting sort, that item will move around from first place to last place on the page and you could get a whole new batch.
hn uses some system, possibley the afterID system, but it knows that after N seconds or N changse to the table the list is no longer valid.
I appreciate that the karma system and voting introduces a lot more complexity behind the scenes with regard to how the top stories are ordered than the simple "newest" stuff on top approach of most news or blog sites. But I don't see why that is allowed to 'break' the display. Irrespective of how you select your records from the database, it's fairly basic practice to paginate the results with some kind of begin=1&end=50 URL appending.
Also the 'expired link' page doesn't even display a link back to the homepage. So you have to either use your browser's back button [unless that link has also now expired], or manually edit the address bar URL, to get some content loading again.
My original question was of the type "Is this really badly designed, or am I missing something really clever?". I think I have the answer now.