example code to explain in detail what I mean... Chris is certainly more
experienced than I, but this works, Terry.:
<body id="partners" >
<input type="hidden" id="hdElem" value="">
<div><input type="text" id='someFormElement' value="This will update
every 5 seconds" size="45"></div>
<div id='someElement'
style="height:70%;background-color:white;clear:left;">This will update every
5 seconds</div>
</body>
<script type="text/javascript">
new PeriodicalExecuter
(
function(pe)
{
var url = "getValFromServer"; //server side file
var pars = "FORM.something=" + "hello"; //in case you
wanted to pass params
new Ajax.Request (url, {
method: 'post',
parameters: pars,
onSuccess: function(transport){
var jsontimestr =
transport.responseText.evalJSON(true);
// store value in a hidden Form element:
if (jsontimestr.latestValFromServer ==
$('hdElem').value) {
alert("values were the same");
} else {
//update page
$('someFormElement').value =
jsontimestr.latestValFromServer;
$('hdElem').value =
jsontimestr.latestValFromServer;
$('someElement').innerHTML =
jsontimestr.latestValFromServer;
}
}
});
},
5); // execute every 5 seconds
</script>
...would like to hear any thoughts.
cheers,
-Mark
On 6/9/07, Mark Holton <[EMAIL PROTECTED]> wrote:
>
> Ajax.PeriodicalUpdater does not extend from Ajax.Updater, so it does not
> support the evalJSON, and other methods, is that correct? So you are
> limited in someways, with respect to Ajax.Request
>
> Feel free to slap me around Chris (go easy though :) )... I'd try this by
> running a PeriodicalExecuter which called an Ajax.Request method. Then
> inside of the Ajax.Request parse the return JSON (or whatever return form
> you are using), place the value in the target DIV, and also place the value
> in a hidden Form element. Each call of Ajax.Request at the specified
> interval could then check the hidden Form value (last value updated), and
> you could perform your comparison with the new value, then complete whatever
> new DOM manipulation you intended if the val had changed.
>
> (never used lastText, lastResponseText, but that seems more elegant than
> placing it in a Form element. Is the above method violate any best
> practices? I'm trying to always pass JSON, and Ajax.PeriodicalUpdaterdoes
> not allow that as far as I read. Always would like to hear other
> options myself)
>
> cheers,
> Mark
>
> On 6/9/07, Christophe Porteneuve <[EMAIL PROTECTED]> wrote:
> >
> >
> > Hey,
> >
> > Terry Riegel a écrit :
> > > Using I am using the Ajax.PeriodicalUpdater, and it is working great.
> > > How do I test to see if the content has changed from the last request?
> >
> > Well, why do you need to? At any rate, it's a simple matter of saving
> > the last responseText and comparing it to the new one. It does keep it
> > in its lastText property, btw.
> >
> > --
> > Christophe Porteneuve a.k.a. TDD
> > "[They] did not know it was impossible, so they did it." --Mark Twain
> > Email: [EMAIL PROTECTED]
> >
> > > >
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Spinoffs" 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/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---