Faire appel Ajax après chargement de la page
Comment pouvons-nous faire appel ajax après chargement de la page.
J'ai besoin de faire un appel ajax supposons qu'après 10sec document est chargé.
function loadajax(){
$.ajax({
url:'test',
data:"username=test",
type:"post",
success:function(){
//do action
}
});
}
$('document').load(function(){
setTimeout(function(){
loadajax();
},10000);
});
Je le fais de cette façon. Mais n'a pas réussi.
Pourquoi les 10 secondes après le chargement de la page? Qui sonne bizarre
Il n'est pas clair pourquoi vous faites cela, donc prendre en compte ce sont les conseils généraux qui peuvent ou peuvent ne pas s'appliquer à votre situation particulière... C'est probablement mieux de faire la requête AJAX immédiatement et attendez 10 secondes pour réagir, au lieu d'attendre 10 secondes pour faire un appel à tous. De cette façon, un retard de réseau n'est pas non créé le temps d'attente au-delà de 10 secondes. En outre, vous pourriez utiliser ce temps pour silencieusement re-essayer les demandes ayant échoué.
Comment puis-je faire cet appel après l'obtention d'un appel ajax?
Mettre dans le
Il n'est pas clair pourquoi vous faites cela, donc prendre en compte ce sont les conseils généraux qui peuvent ou peuvent ne pas s'appliquer à votre situation particulière... C'est probablement mieux de faire la requête AJAX immédiatement et attendez 10 secondes pour réagir, au lieu d'attendre 10 secondes pour faire un appel à tous. De cette façon, un retard de réseau n'est pas non créé le temps d'attente au-delà de 10 secondes. En outre, vous pourriez utiliser ce temps pour silencieusement re-essayer les demandes ayant échoué.
Comment puis-je faire cet appel après l'obtention d'un appel ajax?
Mettre dans le
success
de rappel. Toutefois, si vous avez de la difficulté avec ça, s'il vous plaît poster une question distincte.OriginalL'auteur Anil Sharma | 2014-05-05
Vous devez vous connecter pour publier un commentaire.
Donc beaucoup de réponses, toutes légèrement différentes, mais le plus court recommandé syntaxe pour exécuter la fonction 10 secondes après DOM prêt, tout en conservant les meilleures pratiques, serait:
Comme Blazemonger mentionne ci-dessous, vous pouvez simplement mettre
setTimeout(loadajax,10000);
à la fin du document, cependant ce n'est pas comme preuve de souplesse. jQuery DOM charger le code doit toujours être dans un jQuery DOM événement load (c'est à dire$(function(){...});
)$(function(){
entièrement et de mettre lesetTimeout
à la fin de la page au lieu de la<head>
.Oui, mais c'est considéré comme une mauvaise pratique car elle est moins flexible. Toujours le meilleur, pour envelopper jQuery DOM ready code code en jQuery charge afin qu'il puisse être inclus/injecté où souhaitée. Je vais le ton fait de l'accent mis sur la longueur de code un peu 🙂
Moins de souplesse dans quel sens? C'est une technique très courante -- les gens de chez html5boilerplate.com l'ont fait pendant des années. Il y a d'autres avantages, aussi. Voir cette question et celui-ci.
Les exemples qui vous sont liés pour les matières premières, Javascript et pas jQuery. L'hypothèse avec jQuery est que vous pouvez injecter n'importe où et vous inquiétez pas sur le navigateur de séquençage, il est garanti à feu que lorsque le DOM est complètement chargé (mais pas nécessairement quand tout est chargé). Je vous prends un autre point sur la "nouveauté" de l'abréviation et de modifier en conséquence.
Qui n'a aucun sens. Ce paragraphe est correcte: "jQuery DOM charger le code doit toujours être dans un jQuery DOM événement load". Donc, fondamentalement, vous voulez aller à l'encontre de toutes les recommandations publiées pour jQuery DOM chargement, sur un jQuery réponse, parce que jQuery est écrit en Javascript, même si votre propre réponse était la même? J'ai maintenant perdu tout respect pour vous 🙂
OriginalL'auteur Gone Coding
1000 est en millisecondes -- dix secondes serait 10000. Aussi, vous êtes à la recherche pour
$(document).prêt
:http://api.jquery.com/ready
$(function(){...})
être moins lisible et potentiellement plus de confusion, d'autres moins-de développeurs expérimentés, à une petite épargne de caractères et les cycles.veuillez relire les docs -- Ce n'est pas nouveau, c'est une autre abréviation -- syntaxes date de retour à la v1.0. Le
$(document).ready
la syntaxe n'a pas été dépréciées et autant que je sache, ne le sera jamais.+1: Comme cela fonctionne, et a été un début de réponse. J'ai lu les docs de nouveau, comme vous le suggérez, et notez vos point (mes commentaires sur nouveauté maintenant supprimé). Je suppose que c'est une raison de plus pour passer le mot que la pratique à court de main n'est évidemment pas aussi connu qu'il devrait l'être 🙂
OriginalL'auteur Blazemonger
Essayer comme ça
J'ai délibérément laissé elle. Personne ne devrait avoir une temporisation de 10 secondes sur n'importe quelle page. Ma conjecture est que c'était il y à des fins de débogage.
Il est préférable de ne pas faire des hypothèses sur ce que l'interlocuteur veut. Offrez à votre optimisation comme une seconde réponse, mais en l'état actuel, votre code ne marche tout simplement pas répondre à la question qui a été posée.
OriginalL'auteur djbielejeski
Vous pouvez essayer ceci:
OriginalL'auteur TED