localhost:3000 for a lot of different projects. It's the default port on
create-react-app's dev server. The browser profile remains but projects come and go. There's a lot of old stuff in there that I have no longer any memory of adding.
Working in a recent single page app, I tried to use
localStorage as a cache for some XHR requests and got:
DOMException: "The quota has been exceeded.".
Wat?! I'm only trying to store a ~250KB JSON string. Surely that's far away from the mythical 5MB limit. Do I really have to
lzw compress the string in and out to save room and pay for it in CPU cycles?
Better yet, find out what junk I still have in there.
Paste this into your Web Console (it's safe as milk):
Object.entries(localStorage).forEach(([k,v]) => console.log(k.padEnd(50), v.length, (v.length / 1024).toFixed(1) + 'KB'))
The output looks something like this:
Or, sorted and filtered a bit:
Object.entries(localStorage).sort((a, b) => b.length -a.length).slice(0,5).forEach( ([k,v]) => console.log(k.padEnd(50), v.length, (v.length / 1024).toFixed(1) + 'KB'));
Looks like this:
And for the record, summed total in kilobytes:
(Object.values(localStorage).map(x => x.length).reduce((a, b) => a + b) / 1024).toFixed(1) + 'KB';
Seems my Firefox browser's
localStorage limit is still 5MB.
Also, you can do the loop using
localStorage.getItem(localStorage.key(n)).length but using
Object.entries(localStorage) seems neater.
I guess this means I can still use
localStorage in my app. It seems I just need to
localStorage.removeItem('massive-list:items') which sounds like an experiment, from eons ago, for seeing how much I can stuff in there.