rendrjs / rendr

Render your Backbone.js apps on the client and the server, using Node.js.
MIT License
4.09k stars 312 forks source link

add parse option to fetcher #385

Closed mdimas closed 10 years ago

mdimas commented 10 years ago

Adding this option ensures that the parse method is called on models whether they are loaded server or client side.

This solves simple issues like parsing a string into a Date, which would work on the first page load but then blow up during a client-side redirect when you try to use an attribute that should be a Date but is still a string.

I believe it also obviates the need for PR #372 and #380. Instead of recursively going through models with attributes that were parsed into models when constructing the initial bootstap data, they can be sent to the client as simple objects, therefore saving some overhead. Then when they're loaded client-side parse will be called, the sub-models will get loaded as models and automatically added to the cache.

@saponifi3d @mrubens

coveralls commented 10 years ago

Coverage Status

Coverage decreased (-0.03%) when pulling d6bd6d7104e3159488db206db699a2b03905c524 on change:md_client_side_parse into ad38fe24926964519f53e9b46b16d44437f3a6f6 on rendrjs:master.

saponifi3d commented 10 years ago

This is way better! :+1: now we aren't practically doubling the size of the bootStrappedData object.