[dev] [commits] Horde-Hatchery branch master updated.
Michael M Slusarz
slusarz at horde.org
Fri Feb 20 18:20:12 UTC 2009
Quoting Jan Schneider <jan at horde.org>:
> Associative PHP arrays are serialized as JSON arrays when empty,
> instead of
> objects. $H() only works with objects though.
> Michael, have you seen this earlier and solved it differently?
At one point, I thought I was casting all arrays to stdClass objects,
but I don't see that code anymore.
The better solution in general is simply to check for empty-ness in
the server code and if the value is empty, don't set the value at all
in the to-be-sent JSON object. Then you can just do existence
checking in the JS code. This has the advantage of making JSON
encoding/decoding a bit faster and reduces the size of the data object
sent to the browser in the AJAX response. Same goes for false-ish
values - there is simply no need to set these variables if false. An
example from imp/lib/Views/ListMessages.php:
if ($sortpref['limit']) {
$md->sortlimit = 1;
}
If there is no limit, there is no need to even set sortlimit.
For example, in your _monthCallback function, don't set 'events' if
empty and simply add existence checking:
if (r.response.events) {
$H(r.response.events).each(function(date) {
...
michael
--
___________________________________
Michael Slusarz [slusarz at horde.org]
More information about the dev
mailing list