2013-05-26 3 views
1

J'utilise un widget météo gratuit sur mon site.actualiser JS Script sans recharger la page

<script type="text/javascript" src="http://tools.tititudorancea.com/weather_forecast.js?place=zurich_2&amp;s=1&amp;days=5&amp;utf8=no&amp;columns=5&amp;temp=c"></script> 
<div style="font: 10px Arial, sans-serif; color: #000000" align="right"> 
<a href="http://www.tititudorancea.com/z/weather.htm">Weather forecast</a> provided by <a href="http://www.tititudorancea.com/">tititudorancea.com</a></div> 

Ma page Web ne se rechargera jamais et la météo ne sera jamais mise à jour. Existe-t-il un moyen d'actualiser le javascript sans actualiser la page entière?

Merci à l'avance

Répondre

0

Voici la solution que j'ai trouvée.

var weatherURLSite = "http://tools.tititudorancea.com/weather_forecast.js?place=$placeID$&s=1&days=5&utf8=no&columns=5&temp=c";  
var specificWeather = weatherURLSite.replace("$placeID$", value); 
$.ajax({ 
      type: "POST", 
      async: false, 
      url: weatherURL, 
      data: { url: specificWeather } 
     }).done(
      function (content) { 
       var li = "<li id='" + value + "'>" + content + creditsDiv + "</li>"; 
       $("#weather").append(li);     
      }); 

Et j'ai ajouté une minuterie pour faire la mise à jour périodiquement

var weatherTimer = self.setInterval(function() { GetReloadWeather('@Url.Action("GetWeather","Weather")'); }, 3600000); 
2

Vous pouvez simplement ajouter une requête var bogus à la fin de l'URL pour forcer un rafraîchissement. Ajoutez d'abord un identifiant à votre tag de script, puis essayez ceci:

var weather = document.getElementById('weather'); 

weather.src += '&bogus='+ new Date(); // init 

setInterval(function() { 
    weather.src = weather.src.replace(/&.+$/, '&bogus='+ new Date()); 
}, 1000); 
+0

J'ai essayé votre solution, mais malheureusement, il n'a pas fonctionné, le temps ne met pas à jour lui-même. Une idée? – LotuX

0

Dans mon projet, je me suis retrouvé avec « replaceWith » jQuery fonction

jQuery("script").eq(2).replaceWith('<script type="text/javascript" src="/state.js"></script>'); 
Questions connexes