J'ai un script qui met à jour une table lorsqu'il y a de nouvelles entrées dans la base de données. Il tire un temps à partir de la dernière rangée de la table, puis saisit toutes les entrées qui ont été entrées depuis.Prototype PeriodicExecutor ne met pas à jour la source
Il fonctionne bien la première fois, il saisit les nouvelles entrées et met à jour la table. Quand il s'exécute la deuxième fois, cependant, il utilisera cet horodatage initial et ne récupérera pas la dernière entrée en cours qui vient d'être tirée de la base de données. Il semble donc que la fonction PeriodicalExecuter charge le html de la page au démarrage et ne tient pas compte des mises à jour asynchrones ou enregistre simplement cette heure initiale. Y a-t-il moyen de contourner cela?
Voici quelques code:
new PeriodicalExecuter(function() {
new Ajax.Request(
'#{url}&since_ts=' + $$('#posts tr:last-child td.description')[0].innerHTML.match(/Posted at: (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})/)[1],
{asynchronous:true,
evalScripts:true,
parameters:'authenticity_token=' + encodeURIComponent('#{form_authenticity_token}')
}
)
}, 60)
Je suis assez nouveau javascript et je serais très reconnaissant de toute aide.
Merci!
Ceci est probablement vrai. Essayez d'ajouter "+ new Date()" à votre URL pour le rendre unique. –