Je souhaite qu'une page soit entièrement chargée avant d'émettre un appel ajax pour mettre à jour la base de données. Je peux appeler une fonction javascript dans l'événement body onload afin que la page soit entièrement chargée, mais je ne suis pas sûr de savoir comment déclencher l'appel Ajax à partir de là. Y a-t-il un meilleur moyen d'y parvenir?Appel ajax javascript à la page onload
Répondre
Ceci est vraiment facile en utilisant une bibliothèque JavaScript, par ex. en utilisant jQuery vous pouvez écrire:
$(document).ready(function(){
$.ajax({ url: "database/update.html",
context: document.body,
success: function(){
alert("done");
}});
});
Sans jQuery, la version la plus simple pourrait être la suivante, mais il ne tient pas compte pour le traitement des différences de navigateur ou erreur:
<html>
<body onload="updateDB();">
</body>
<script language="javascript">
function updateDB() {
var xhr = new XMLHttpRequest();
xhr.open("POST", "database/update.html", true);
xhr.send(null);
/* ignore result */
}
</script>
</html>
Voir aussi:
ya thats bien mais ca je le fais sans utiliser jQuery? –
'$ .ready' est l'équivalent de' DOMContentLoaded' pas 'load'. Votre comparaison jquery/vanilla peut être trompeuse sur ce point. Votre version à la vanille devrait écouter l'événement en utilisant 'document.addEventListener' et non l'attribut' onload' qui est considéré comme une très mauvaise pratique. – ngryman
FYI: Avis de dépréciation: Les rappels jqXHR.success(), jqXHR.error() et jqXHR.complete() sont supprimés à partir de jQuery 3.0. Vous pouvez utiliser jqXHR.done(), jqXHR.fail() et jqXHR.always() à la place. – mmv1219
Vous pouvez utiliser jQuery pour le faire pour vous.
$(document).ready(function() {
// put Ajax here.
});
Vérifiez ici:
http://docs.jquery.com/Tutorials:Introducing_%24%28document%29.ready%28%29
Ou avec Prototype:
Event.observe(this, 'load', function() { new Ajax.Request(...));
Ou mieux, définir la fonction ailleurs plutôt que de ligne, puis:
Event.observe(this, 'load', functionName);
Vous n'avez pas besoin d'utiliser spécifiquement jQuery ou Prototype, mais j'espère que vous utilisez une sorte de bibliothèque. L'une ou l'autre bibliothèque va gérer la gestion des événements d'une manière plus cohérente que l'onload, et bien sûr va faciliter le traitement de l'appel Ajax. Si vous devez utiliser l'attribut body onload, vous devriez simplement pouvoir appeler la même fonction que celle référencée dans ces exemples (onload="javascript:functionName();"
).
Cependant, si la mise à jour de votre base de données ne dépend pas du rendu sur la page, pourquoi attendre jusqu'à ce qu'elle soit complètement chargée? Vous pourriez simplement inclure un appel à la fonction d'appel Ajax à la fin du JavaScript sur la page, ce qui devrait donner presque le même effet.
- 1. javascript appel de fonction automatiquement à la page onload à la place sur onclick
- 2. Appel de fonction Javascript sur la page à la fois onload et onclick?
- 3. Rails: Ajax: Changements Onload
- 4. uibinder onload pas appel
- 5. Authentification - asp.net ajax javascript appel à wcf
- 6. Ajax appel à la page aspx JQuery JSON
- 7. Appel jquery $ .ajax dans la fonction Javascript
- 8. javascript bouton selecetd onload
- 9. simple fonction Javascript onLoad
- 10. Passage des valeurs de la page ajax à la fonction javascript de la page appelante
- 11. Javascript img onload
- 12. Javascript Cookie onload Appelez
- 13. Comment appeler javascript dans l'événement onload d'une page enfant
- 14. ajax appel à travers
- 15. appel AMF vs Javascript appel à facebook
- 16. Appel à distance Javascript
- 17. JavaScript: Comment "function onload() {}" est-il différent de "onload = function() {}"?
- 18. Création d'un appel Ajax à partir d'une page FBML statique
- 19. appel javascript/ajax fonction de php
- 20. Comment effectuer un appel Ajax de Javascript à JSP?
- 21. appel Ajax à une méthode qui imprime javascript
- 22. PHP + Jquery - déplacement de la page après un appel ajax
- 23. Insérer un appel javascript à l'intérieur de <body onLoad = function()> dans RAILS
- 24. Déclenchement du comportement 'onload' dans les données de retour AJAX
- 25. Javascript redimensionner la page onload, puis-je le faire avant le chargement de la page, ASP classique
- 26. problème en utilisant javascript onload
- 27. Appel href à partir de JavaScript
- 28. html select execute javascript onload
- 29. Ajax appel à partir de la page html locale dans Webkit Qt
- 30. fonction erreur appel à ajax
La mise à jour de la base de données est strictement liée à l'événement de page onload? ou il pourrait être effectué lorsque votre serveur commence à envoyer la page? –