Agreed--it's hardly a revolutionary change. The case I needed it for
was a self-updating div:
<div id="foo">
<script type="text/javascript"
document.observe("foo:refresh", function(){Ajax.Replacer("foo",
"/bar/foo", {method: 'get'})});
</script>
content
</div>
If that were Updater, it would cause the div to nest itself on every update.
The other places I see it being useful are when the XHTML is either
outside of the developer's control, or it has to meet other
requirements that necessitate it not having a wrapper. More
importantly, I think it's poor taste to add cruft (ie. a wrapper div)
to your presentation layer due to the inadequacies of your behavior
layer. Especially when they're so easily fixed.
I'm not saying it belongs in core: I just saw the old post, found it
was buggy, and thought it'd be nice to have a working implementation
floating around for the next Googler. That being said, it would only
introduce 4 lines of duplicate code because it subclasses Updater. You
could eliminate those duplications by adding a bit of abstraction ;)
Cheers,
Ian
On Tue, Apr 29, 2008 at 5:13 AM, Yanick <[EMAIL PROTECTED]> wrote:
>
> Just out of curiosity... how this is better than having a wrapper
> element and using Ajax.Updater instead?
>
> To me, it seems like replacing :
>
> var str = "foo " + "bar";
>
> with :
>
> var str = cat( "foo ", "bar" );
>
> function cat(a, b) {
> return a + b;
> }
>
> Unless you really have to process your response in a specific way that
> Ajax.Updater doesn't do, it is, IMHO, that it adds duplicate code to
> the core. If I am mistaking, please help me see the light here.
>
> yanick
>
>
> On Apr 27, 4:51 pm, "I. E. Smith-Heisters" <[EMAIL PROTECTED]> wrote:
> > I saw in the archives that someone was looking for an Ajax.Replacer
> > class:
> >
> > http://groups.google.com/group/prototype-core/browse_frm/thread/a2fed...
> >
> > I found that the implementation suggested didn't work correctly with
> > 1.6.0.1, so I just wanted to share my new implementation:
> >
> > Ajax.Replacer = Class.create(Ajax.Updater, {
> > updateContent: function(responseText) {
> > var receiver = this.container[this.success() ? 'success' :
> > 'failure'],
> > options = this.options;
> >
> > if (!options.evalScripts) responseText =
> > responseText.stripScripts();
> > if (receiver = $(receiver)) receiver.replace(responseText);
> > }
> >
> > });
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Prototype: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---