Hacker News new | ask | show | jobs
by jayski 745 days ago
This is basically encoding(base64?) the <textarea> and putting it in the URL.

Its a neat idea, but I think theres a limit to how long URLs can be.

3 comments

IIRC in theory it’s 2048 characters, but in practice it’s 2000 (at least in Chrome a few years ago when I toyed with Google Maps for food).
It's actually much longer, I was implementing a javascript bookmarklet and the old published limitations are not respected by much anymore, so you can shove a LOT of data in there.
Should have used base65536.
Ouch, that's bad :D Won't store too long texts.
It is at least compressed to make the most of the limit
base64 is the opposite of compressed. Does it actually apply compression before base64-encoding? Doesn't really look like it by watching the URL.
What gave you that impression? I tried spamming "a" and the URL indeed did not get longer.

Reassuringly:

   function serialize(value) {
        if (value === '') { return ''; }
        const data = new TextEncoder().encode(value);
        const compressed = pako.deflate(data, { level: 9 });
        return Base64.fromUint8Array(compressed, true);
    }
it does get longer. rather than typing in aaaa copy and paste it and copy and paste that to grow exponentially
It’s actually compressed. It uses https://github.com/nodeca/pako and then applies base64. Try entering hundreds of "a" and you’ll see that the base64 doesn’t really get much longer.