TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Offline First – A better HTML5 User Experience

72 pointsby waldrover 12 years ago

7 comments

quanticleover 12 years ago
So, in other words, the web is rediscovering client/server programming. Welcome to 1990, everyone!<p>More seriously, though, I think a lot of the reason for the historical tendency towards server side rendering has been:<p>* Clients were slow: remember, until V8 raised the standard for speed, Javascript VMs were <i>slow</i>. So doing a lot of rendering or data processing in Javascript was a bad idea, since it negatively affected the user's experience with their entire computer, not just your site.<p>* DOM Manipulation is hard and inconsistent between browsers: Yes, JQuery and friends hide the native DOM API. But we have to remember that it wasn't always the case. Rich client-side libraries are all quite young, comparitively.<p>* Offline capabilites were non-existent: Even today, the HTML5 specification, as implemented, only grants you a fraction of the data storage and retrieval capabilities available to even the most sandboxed application. And previously, these capabilities simply weren't there - if your app needed to store data, it had to store data server side and tag the client with a cookie or some other for identification to keep track of which data belonged to whom.<p>Yes, there is progress being made on all three fronts, but you can't expect developers to throw away years of best practices in a day, then immediately turn around and write HTML5 webapps. I think the evolution towards a more balanced computing model (where more of the computational load is being handled by the client) is ongoing, and will accelerate as browsers become more capable.
评论 #4836476 未加载
评论 #4836838 未加载
评论 #4838173 未加载
评论 #4840793 未加载
karterkover 12 years ago
Offline first is almost magical for end-users, since this is something quite contradictory to how people perceive the web. Having said that, it's also incredibly difficult to get it right.<p>As others have pointed out, the major problem I face is to inform the users that some features are not available when they are offline (e.g. file uploads). If you're not careful with the user experience, this leads to lots of support headache.<p>Another problem is dealing with legacy client data. If you are storing anything at all in the local storage, you need to realize that it's going to be always there once you write it. So handling with data migrations on the client storage becomes very important, and definitely must be thought ahead.
zalewover 12 years ago
the linked site is very offline first right now. <a href="http://isitup.org/blog.joelambert.co.uk" rel="nofollow">http://isitup.org/blog.joelambert.co.uk</a><p>cache <a href="https://webcache.googleusercontent.com/search?q=cache:http://blog.joelambert.co.uk/2012/11/26/offline-first-a-better-html5-user-experience/&#38;hl=en&#38;client=iceweasel-a&#38;tbo=d&#38;rls=org.mozilla:en-US:unofficial&#38;strip=1" rel="nofollow">https://webcache.googleusercontent.com/search?q=cache:http:/...</a><p>btw a worthwhile read <a href="http://www.alistapart.com/articles/application-cache-is-a-douchebag/" rel="nofollow">http://www.alistapart.com/articles/application-cache-is-a-do...</a>
gkobergerover 12 years ago
For most apps (which derive their usefulness from dynamic content), what's the point? Is an app that loads but does nothing really worth all the extra development time?<p>That being said, if you're already making a mobile app or API to go with your site, it does make sense to decouple the frontend (HTML/Cocoa/whatever) from the backend so you only write the backend once. Best way to have an up-to-date, useful API is to use it yourself.
评论 #4836390 未加载
mwillover 12 years ago
I'm planning on queuing up updates when offline for my app. On the technical side of things, it's incredibly easy when done from the ground up. In fact I think it's made the entire thing much cleaner and far easier to develop.<p>The harder part seems to be communicating with the user. If/how to let them know they've gone offline, and what that means for their experience, and if they're allowed to create/update content, what will happen when they reconnect.<p>For example, the next question for me is what to do with conflicting updates, ie when a user updates a document offline and reconnects, and the document has been updated by a different client while they were offline. Discarding or merging isn't a problem from a technical stand point, the problem is presenting it to the user, and striking a balance between doing what the user wants/expects, and not bothering the user with a ton of questions about which of their changes they want to keep/merge.
评论 #4836643 未加载
评论 #4837730 未加载
culshawover 12 years ago
People are consuming more content on mobile year on year, and using offline storage and capabilities have been around for the past year or two; how this is only just bubbling at the surface at conferences is beyond me.<p>Take THE white elephant example; Facebook mobile. The shift is evident, my girlfriend doesn't use a traditional desktop/laptop anymore she consumes all her Facebook glutton through her mobile. If it takes more than 5 seconds to load she gives up.<p>There is a grey gap in knowledge of accepted and logical practice with what stays online or offline but for example the whole of Facebook's UI could be cached on a mobile and just reload the updated news/feeds.
评论 #4837304 未加载
adjustafreshover 12 years ago
There's something poetic about the fact that I can't connect to a post apparently titled, "Offline first..."