Subcookies V2
š Whoa! Please note that this post is 16 years old. The views expressed within might have become outdated.
My Subcookies article from May the 27th of last year has proven to be my most popular bit of writing.
A year after publishing, "C" has requested an update.
I have now rewritten my cookies script, fixing some issues pointed out by "C", and added some security as pointed out by Jim Thomson.
Notable changes:
Note; for a complete rundown of the original script, read Subcookies.
- The
subcookiejar.fetch ()
method now returns an object literal (or, as the cool kids say, āJSONā) if the second parameter is left undefined. This means that by doing the followingā¦
// bake a new cookie
subcookiejar.bake ('admin', {
name: 'Harmen',
age: 23,
homepage: 'http://www.whatstyle.net'
}, 2);
// fetch it
var admin = subcookiejar.fetch ('admin');
ā¦you can fetch the adminās values by doing something like this:
alert (admin.name);
alert (admin.age);
alert (admin.homepage);
-
If the second parameter is given, however,
subcookiejar.fetch
will return eithernull
if the requested subcookie is not available, or just that subcookie. -
Also, it is now possible to append to existing cookies. If, after executing the code above, I execute the following codeā¦ ``` subcookiejar.bake (āadminā, { city: āHarderwijkā, country: āThe Netherlandsā }, 2);
...the result will be a combined object containing both the new data and the existing data: ``` { name: 'Harmen', age: 23, homepage: 'http://www.whatstyle.net', city: 'Harderwijk', country: 'The Netherlands' }
Note that you will overwrite the existing values if you use this technique.
Other changes consist purely of improving some code, comments and security checks.
So, the new version can be downloaded here. Go and grab it, itās free!
As always, Iād love to hear feedback. If you have any, do let me know.
And C, sorry to keep you waiting ;).