Category Archives: development

localStorage, Cookie or Session


Nowadays more websites focus on user experience, and creating customized contents for users. One solution is creating an identifier ID for each user, then rendering customized contents based on the ID. To store that identifier and customized content, we can use LocalStorage, Cookie or Session. Cookie can contain 4K data in the browser, it is included in every httpRequest’s header. Every time when browser sends a request to server, the server will receive Cookie data. The problem is it loads much slower with increase of Cookie size. The good part is Cookie has an expiration date. It stays in the browser until it expires or users clear Cookie. Session is something we can use on server side to store data, which means the data will be not visible to users. Session usually stores sensible data you do not want to share with different users, but it will expire after closing browser window. Session is perfect for tracking user activity during a certain period, for example: shopping cart order funnel. Another good part is Session has unlimited size. LocalStorage is a feature in HTML5, it stores data in browser and only can be accessed in JavaScript. It is useful when the website involves large interactions and data exchange with a spotty network connection. The data could be stored in LocalStorage first, then be sent to server when the connection is back. LocalStorage does not have an expiration date, and it only 5MB limit, much larger than Cookie. Depending on where you want to access those data, you can choose LocalStorage, Cookie or Session. LocalStorage needs JavaScript turned on to make sure work properly. Usually if you only want to store and access data in browser, LocalStorage is a good option. If you want to store an identifier ID, and use that ID to retrieve customized contents, then you can use Cookie to store that ID, then use that ID to retrieve customized data from database.

So what’s new on Windshield Guru?

Yes, it’s one of our signature projects, so don’t think we’ve just been sitting there watching its numbers tick upwards.


First, we’ve dramatically retooled the back-office.  It’s more efficient, and allows our staff to handle even the most complicated customer-service situations.  You might not notice it outright, but you’ll feel the performance.


Second, we restructured the code.  A system like Windshield Guru evolves over time, as we figure out what our partners need, and they figure out where they can expand their service.  This led to a lot of redundant code and inefficient maintenance.  The new code structure allows us to minimize downtime when we add new features, and reduce bugs.  Code that had been repeated up to 7 times is now just in one standard place!


Finally, we’ve extended our partner outreach with a new embeddable module.  We can build our partner shops a customized, fully-styled site in less than a week, which has all the automatic quoting and scheduling power of the main Windshield Guru site, but their own branding.  This has always been a hindrance for small local glass shops– nobody wants to spend $150,000 up front to develop the booking system, but we’re happy to extend our work for the benefit of the partners.  There’s never been a better time to join our network.

Handling Outages with Class

I’m blogging today at home, as the Web-Op HQ blew a breaker today. That segues nicely into today’s concern– how to maintain customer trust when things go south.

High-visibility outages aren’t new. Sony, in particular, averages one per week. However, only some firms can emerge from them with their dignity– and customer base– intact. Here’s how:

Continue reading