Nice. I think if you were actually getting beachballed and can provide an estimate markup size (or at least an example block to demo), including that in a bug report would be legitimate - especially if you've seen the raw-markup approach remedy things. I would be interested in seeing your patch as I /might/ be able to clean it up quickly (I've been hacking through the ajax/partial response areas in T5 recently).
Anyway, glad you found at least a temporary solution - happy hacking! chris Steven Woolley wrote: > Thanks for the response Chris. Rob Zeigler and myself dug in and > figured out a temporary workaround... by overriding (the internal and > subject to change) AjaxPartialResponseRenderer ... I didn't yet do the > elegance of making the change based on the requested Content-Type, but > that would be the logical next step. > The ugly part of the current hack, is that JSONObject is the container > that is passed through the whole rendering pipeline for the AJAX > stuff, which means we're not able to avoid passing it around, but we > just use the MarkupWriter from AjaxPartialResponseRenderer to send to > the Printstream instead of the JSONObject... > > As for the JS side, I was doing that all with my own XHR code anyway, > in a script that I include on the necessary pages/components. > > That evil "eval" was actually giving me the beachball on some of the > updates of larger more complex elements... so this was a must for that... > Thanks for you suggestions! If you'd like me to file a JIRA I can > probably do so (though my experience attempting to file bugs in the > past was frustratingly painful... what can I say, I have thin skin... ) > Steve > > > > > On Apr 27, 2008, at 3:07:30, Chris Lewis wrote: > >> Hi Steven, >> >> Regarding c): >> >> I was just about to respond telling you that you can return AJAXObject >> or an injected block (mark up), and it will work fine, and then I >> realized that even markup is wrapped in a JSON envelope. I don't think >> this can be changed without changing some T5 code - even if you could >> replace the relevant handlers via module contributions (probable), you >> still can't affect the JS that handles the responses (or maybe you can >> by providing your own in the expected package, like overriding >> validation messages...). >> >> Anyway that seems to be a legitimate issue and depending on feedback you >> should consider adding a JIRA (or 3). In theory the problem could be >> solved by adding/seting a header in the T5 AJAX responses, stating if it >> is raw markup or not. tapestry.js would check for this header and then >> behave accordingly (that is, no eval just a content update). Actually I >> think the 'correct' way to do this would be to set a Content-Type of >> 'application/json' for json reponses >> (http://www.ietf.org/rfc/rfc4627.txt), or 'text/xml' for raw content. >> >> AJAX support has come a long way but it's still notably rough in some >> areas (and if you watch the dev or JIRA you've noticed that). Anyway the >> fix I suggested shouldn't take too much work, and I could probably >> submit a patch if you can hack together a simple project that >> demonstrates the issue. I am quite interested in T5's AJAX support and >> really think that it could very much shield developers from dealing with >> a lot of things, it should needs a bit more time in the oven. >> >> chris >> >> Steven Woolley wrote: >>> Like pouring ajax in my wounds? >>> >>> Trying to upgrade from 5.0.6, and upgrading all my ajax stuff is >>> killing me... >>> >>> The issues I've run into (I'm shoehorning things a bit, by just >>> returning a block from an actionevent handler and grabbing the markup >>> from the jsonresponse with my AJAX response handler... in part because >>> of a) below) are: >>> >>> a) Nested zones? I haven't been able to get them working... I have a >>> page where sometimes I just want to update a few minor elements, >>> sometimes a big grandfather element... >>> >>> b) The id namespace issue, broke all my javascript $('divid') calls... >>> there are workarounds (one just posted today,much cleaner than mine... >>> thanks!) but I'd love to be able to turn this off, for some cases >>> where duplicate id's won't matter (or is preferred). >>> >>> c) JSON is powerful, but returning a big complicated element in a json >>> string is hurting performance (the escaping I assume server side, and >>> the eval() clientside, as well as inflating the response size with all >>> the escaping...) ... in some cases almost doubling the roundtrip time >>> over my 5.0.6 solution (2 seconds vs. 4 seconds in Safari 3) and the >>> difference is more severe in Firefox 3 (and potentially worse in >>> IE?).. I'd really love to be able to just return the raw markup >>> again... instead of having to wrap it in a JSON object... if someone >>> knows how to do this beyond 5.0.6 PLEASE share!!!! Or if someone can >>> point me to something I can decorate to skip the jsonobject creation, >>> You'll be my hero! >>> >>> I should have put c) first... since that's the one I'm struggling >>> most with... >>> Steve >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> >> -- >> http://thegodcode.net >> >> >> ---------------------------------------------------- > > -- http://thegodcode.net --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]