From: <aro...@cl...> - 2007-11-14 21:59:52
|
Hi Guys, We really love the "addXXXResourceInHead" methods such as "addStylesheetResourceInHead". It's really neat to design a reusable subComponent and just think about what resources it needs (CSS, Javascript, etc). Then, in that subComponent's "appendToResponse()" method you can simply call those resourceInHead methods so that the appropriate resources are only mentioned once in between the "head" tags. As cool as this is, we've run into a snag. I wonder if anyone else has stumbled on this and has an elegant solution. The Problem: If there are no instances of your special reuseable subComponent displayed at page load time, there is no reference to their mandatory CSS and Javascript resources in between the header tags. But, by the result of an Ajax call, when a portion of the DOM gets updated and your reuseable subComponent appears, it will lack its necessary CSS and Javascript to function properly. The Reason: "appendToResponse()" was not called on the reusable subComponent at page load. That was its only chance to stick its required resources inbetween the "head" tags. When you use an AjaxUpdateContainer to replace part of the DOM, you do call that subComponent's "appendToResponse()" method but there is no "head" tag and hence no place to stick your required resources. The Workaround: The current workaround we have in place right now is to put some of these resources in our "page wrapper" component. This is not so elegant because the reusable subComponent is no longer self contained. The Solution: Please extrapolate any ideas you might have on this curious situation :-) Cheers, -- Aaron |