2010-09-17 6 views
1

J'ai réussi à obtenir ce script. Il est rafraîchissant de la div de la fenêtre de dialogue:rafraîchir le contenu d'une boîte de dialogue jquery ui

function getRandom() { 
$("#category_dialog").load("<?php echo $category; ?>", '', callback); 

}

function callback() { 
    $("#category_dialog").show("fast"); 
    setTimeout("getRandom();", 10000); 
} 

$(document).ready(getRandom); 

tout fonctionne bien. div est rafraichi toutes les 10 secondes. Mais j'ai quelques doutes sur cette méthode. 1. puisque faire un rafraîchissement à 10 secondes va ralentir la vitesse du sondeur ou quelque chose comme ça? 2. Je voudrais le faire rafraîchir plus rapidement à toutes les 3 secondes pourrait-il arriver quelque chose de mal?

Je préférerais créer un lien qui rafraîchira le contenu surclic - mais je n'ai pas trouvé de bons exemples. Est-ce que quelqu'un peut m'aider avec ça. Donc je veux que la catégorie div_dialog soit chargée en utilisant load.() Mais avec onclick call - et display then quoi de neuf. Merci!


Avec Kissaki aide i réussi à faire une simple fonction qui va me faire un lien de rafraîchissement :) voici l'exemple:

$(function() { 
    $("#refresh").click(function() { 
    $("#category_dialog").load("<?php echo $category; ?>") 
    }) 
}) 

Répondre

0

Si vous voulez diminuer l'intervalle de rafraîchissement vous suffit de tenir compte des performances: bande passante, charge du serveur et charge du client.

La charge du client ne devrait pas poser de problème, si ce n'est pas un rafraîchissement inutile en arrière-plan. Vous pourriez par exemple seulement actualiser si la fenêtre a le focus pour réduire le tirage de données inutiles, jamais vues. Comme le div est affiché une fois et que vous appelez la fonction show chaque fois que vous actualisez (alors qu'il est toujours affiché, car il n'a jamais été masqué), vous pouvez supprimer cet appel. Je ne sais pas exactement comment jQuery l'a implémenté et quel gain de performance vous pouvez obtenir ici, mais c'est un appel inutile après le premier appel de toute façon.

Vous pourriez également probablement utiliser ceci dans la fonction de rappel, car vous utilisez la fonction de chargement. Vous devriez vérifier cependant.

De même, vous n'avez pas besoin de transmettre une chaîne vide à la fonction de chargement. Ce paramètre de données est facultatif.

Et comme je ne vois aucune mise à jour de contenu, vous avez probablement laissé tomber cela du code avant de coller ici?

Pour la onclick jQuery fournit la fonction clic() http://api.jquery.com/click/

$("#category_dialog").click(function(event){ 
    //refresh code here 
}); 
+0

Je pense que je manque quelque chose. j'ai mis le code d'actualisation dans $ ("# category_dialog"). click (function (event) { // Actualiser le code ici }); mais il ne rafraîchit pas si je clique - j'ai également changé l'id en refresh_content et l'a utilisé comme un lien si je clique dessus tout serait rafraîchi mais ne fonctionne toujours pas .. – ciprian

+0

été cherché ici http: //api.jquery. com/click/et j'ai réussi à faire un lien de rafraîchissement. Je vais éditer ma question avec la solution. Merci pour votre temps - j'apprécie vraiment votre bonne réponse! – ciprian

Questions connexes