2011-01-12 4 views
0

J'ai lu (ailleurs sur ce site) que vous ne pouvez pas recharger (ou injecter javascript) sur une page qui est déjà rendue. Existe-t-il un autre moyen de le faire. Par exemple un iFrame?Recharger fichier.js chaque minute

J'ai un commentaire recent widget.js et j'ai besoin de constamment le recharger sans recharger toute la page.

Des idées?

edit: Le site a des commentaires récents à y retourner et ceux-ci sont affichés via un recentcomment.js Une fois la page chargée, elle ne se met pas à jour tant que vous n'avez pas rechargé la page. Je veux qu'il se mette à jour, un moyen de le faire est de simplement recharger le fichier js sur la page, correct?

+5

Si vous avez besoin de recharger le fichier js à chaque minute, il y a quelque chose qui ne va vraiment pas dans votre architecture. Veuillez décrire le problème que vous tentez de résoudre et, espérons-le, quelqu'un peut suggérer une meilleure solution. – Juliet

+1

Pourquoi n'emballez-vous pas le tout dans une fonction et appelez-le toutes les minutes? –

+0

Ou effectuez un appel AJAX périodique vers une source de données contenant les commentaires. –

Répondre

0

Pourquoi avez-vous besoin de faire cela? Il me semble qu'il y a probablement une solution plus appropriée à votre problème.

Mais pour y répondre:

var elm = document.createElement("script"); 
elm.src = "Widget.js"; 
document.getElementsByTagName("head")[0].appendChild(elm); 

Espoir Je n'écrire aucune erreur ...

+0

Si le rendu de la page est terminé, chargera-t-il toujours le contenu du fichier js? – chustar

+1

Vous devrez peut-être ajouter un paramètre aléatoire à la fin, par exemple. 'Widget.js? 1234' pour empêcher la mise en cache. – casablanca

+0

Si vous envelopper ce code dans une fonction et l'appeler de façon répétitive toutes les x secondes, il continue de recharger le fichier js – Bart

0

Plutôt que de recharger le fichier, vous pouvez avoir toute la mise en œuvre du fichier contenu dans une fonction puis appelez la fonction toutes les minutes à l'aide de la fonction setTimeout(). Sinon, si vous voulez le recharger parce que le contenu du fichier a peut-être changé, il vaudrait probablement mieux déplacer cette partie du code vers un fichier externe, puis utiliser une fonction (exécution toutes les minutes avec setTimeout()) pour charger le nouveau contenu dont vous avez besoin.

+0

les commentaires récents.js viennent d'un autre serveur. – gravityboy

0

Vous pouvez effectuer des requêtes AJAX interdomaines à l'aide de certaines méthodes. Vous pouvez donc effectuer une requête AJAX pour le fichier de script et l'analyser vous-même. Analyser vous-même n'est probablement pas une solution optimale, mais il semblerait que vous ayez affaire à un fournisseur de services qui a perdu son cerveau de toute façon.

Regardez mod jQuery pour un exemple de ce type: http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

Une fois que vous obtenez les données de la 3ème partie, vous pourriez probablement utiliser une combinaison de regex et analyseur JSON pour extraire les commentaires.

Questions connexes