So in case you're wondering, no, this doesn't actually need to store data locally. I'm just playing around with actually using it on my phone. It'll make the site load faster if you ever visit it again though!
Why? Well, the whole 10MiB limit along with a web interface (so no ability to add a static rule to serve a .gz), seemed like a fun chance to experiment with this.
Yes, Neocities is now 100MiB so this whole thing is no longer a challenge - but maybe still helpful for hosting large JS games! Also, hey, still handy as a little phone dictionary app or something.
The dictionary is 28.7MiB uncompressed, 9.9MiB9.5MiB (yay zopfli) as a PNG. Other text can compress much more efficiently. The dictionary was not as repetitive as some text sources.
Initially I wrote the entire dictionary to the page, but the rendering in browsers took ages. This has nothing to do with javascript. A static dictionary locally was also very slow.
So. I split it up by letter of the alphabet. Click on the menu at the top to switch letters.
This probably doesn't work in IE9 due to the use of FileReader, which was only for UTF-8 conversion. Otherwise, the general idea should work ok in IE9 as well, and could be used to load, say, an 80 megabyte asm.js or emscripten game (asm.js/emscripten compresses pretty well).
Of course, one could fit a lot of data on NeoCities just by registering for a ton of accounts. A photo album that way would work. Seems kind of rude though.