[javascript] om de 30 seconden een script inladen

Pagina: 1
Acties:

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Daar ben ik weer :'(

Ik wil dus om de 30 seconden een extern javascript filetje inladen, namelijk 'http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false'

Nou ben ik bang dat er een teken inzit wat er voor zorgt dat het misgaat ofzo...

de code :
code:
1
2
3
4
5
6
7
8
9
<script>
 Station = new Object();
 function getsonginfo()
  {
   document.write("<script src='http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false'><\/script>");
   document.write(Station.TrackArtist + ' - ' + Station.TrackTitle);
   window.setTimeout("getsonginfo()",30000);
  }
</script>

Maar dit werkt dus niet :'( Als ik de html file inlaad, krijg ik de eerste keer alleen 'undefined - undefined' te zien en de tweede keer zegt Bill dat er in regel 1 een object verwacht wordt :'(


Uiteraard heb ik weer heel veel lopen klussen en zoeken, maar ik kom er niet uit...

Alvast bedankt voor de moeite, en sorry voor het verneuken van de layout :)

  • shreklich
  • Registratie: Januari 2002
  • Laatst online: 04-03-2025
Dat laatste probleem wat jij hebt heb ik dus ook maar dan met mijn klok zie topic onder je.mijn topic. Ik hoop dat iemand uberhaupt nog reageert op ons probleem. :'(

  • AceRimmer
  • Registratie: Maart 2001
  • Laatst online: 09-09 18:02

AceRimmer

What a guy...

Zie inderdaad dat andere topic. Zelfde probleem, zelfde oplossing. Document.write veegt de oude code weg, dus die kan niet meer aangeroepen worden.

Smoke me a kipper, I'll be back for breakfast


  • Glacier
  • Registratie: Juli 2000
  • Niet online
Op zondag 21 april 2002 00:28 schreef AceRimmer het volgende:
Zie inderdaad dat andere topic. Zelfde probleem, zelfde oplossing. Document.write veegt de oude code weg, dus die kan niet meer aangeroepen worden.
Alleen de oplossing is hier wat lastiger dan bij het andere topic...
Ik gebruik document.write om om de 30 seconden een script opnieuw in te laden...zodat er nieuwe song info van de server komt. Ik heb dus niets aan de div oplossing :'(

In mijn functie staat een document.write om de song info opnieuw op te halen via een extern javascript, als ik die maar 1x inlaad, krijg ik altijd de zelfde song info te zien, terwijl de info in de externe javascript file al lang geupdate is...
En een keiharde reload van de pagina is ook nix, want het duurt soms best wel even om de song info in te laden, en dan zou het top frame om de 30 seconden 20 seconden niet te zien zijn :{

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

[topic=299864/2/25]

Staat hoe je wel dynamisch een script kan toevoegen in je pagina..

Verwijderd

hoe het precies moet weet ik zo niet, maar je kan toch gewoon een lus in bouwen (met bijv. while, en dan een variabele die de aangegeven waarde nooit zal bereiken)??

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op maandag 22 april 2002 15:11 schreef Vledder het volgende:
hoe het precies moet weet ik zo niet, maar je kan toch gewoon een lus in bouwen (met bijv. while, en dan een variabele die de aangegeven waarde nooit zal bereiken)??
while(true)? Volgens mij was dat het probleem niet ;)

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Op maandag 22 april 2002 15:11 schreef Vledder het volgende:
hoe het precies moet weet ik zo niet, maar je kan toch gewoon een lus in bouwen (met bijv. while, en dan een variabele die de aangegeven waarde nooit zal bereiken)??
Ja, lekker dan blijft het ding zich updaten en komt ie niet meer uit die function en loopt de tijd, current program, scheduled time, en current Dj vast, want die staan in andere functions...

Ik ga nu ff klussen om te kijken of mbv dat andere topic het toch voor elkaar kan krijgen....

Edit : OK, ik heb geklust, dit is de code :
code:
1
2
3
    document.write('<script src="http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false"></scr'+'ipt>');
    alert(Station.TrackArtist+'-'+Station.TrackTitle);
    window.setTimeout("test()",30000);

De eerste keer doet ie het goed, maar de twede keer gaat echt niet lukken, Bill verwacht dan een object in regel 1 ;(

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op maandag 22 april 2002 15:45 schreef Glacier het volgende:

[..]

Ja, lekker dan blijft het ding zich updaten en komt ie niet meer uit die function en loopt de tijd, current program, scheduled time, en current Dj vast, want die staan in andere functions...

Ik ga nu ff klussen om te kijken of mbv dat andere topic het toch voor elkaar kan krijgen....

Edit : OK, ik heb geklust, dit is de code :
code:
1
2
3
    document.write('<script src="http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false"></scr'+'ipt>');
    alert(Station.TrackArtist+'-'+Station.TrackTitle);
    window.setTimeout("test()",30000);

De eerste keer doet ie het goed, maar de twede keer gaat echt niet lukken, Bill verwacht dan een object in regel 1 ;(
Wat is je test() functie? En bovendien is "test" een gereserveerde naam in JS.. *zucht*

  • Glacier
  • Registratie: Juli 2000
  • Niet online
sorry, ik dacht dat duidelijk was dat
code:
1
2
3
4
5
6
  function testsong()
   {
    document.write('<script src="http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false"></scr'+'ipt>');
    alert(Station.TrackArtist+'-'+Station.TrackTitle);
    window.setTimeout("testsong()",30000);
   }

de functie was...ik heb hem voor de zekerheid ff gerenamed, hoewel ik op een oude site een goed werkende function test had...maar dat boeit nu even niet :P

Bill verwacht nu nog steeds een object in regel 1 als de functie dmv de timeout opnieuw wordt aangeroepen.. ;(

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Je kunt geen document.write's meer doen als je document al klaar is dus.. das al paar keer gezegd.. Heb dit voor je in elkaar gezet en lijkt te werken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<title>include test</title>
<script id="livestats" type="text/javascript" src="http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false"></script>
<script type="text/javascript">
function loadScript(src){
document.body.innerHTML+="Loading...<br>";
    if(document.getElementsById){
        var livestats = document.getElementById("livestats");
            livestats.src = src;
    }
      setTimeout("loadScript('"+src+"')",5000);
}
function startLoad(){
    setTimeout("loadScript('http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false')",5000);
}

onload = startLoad;
</script>
</head>
<body>
</body>
</html>

Deze code is niet compleet en warschijnlijk zal door de caching het hele script na de eerste keer niet meer ververst worden. Mogelijk kun je een random waarde nog aan het script toevoegen iedere reload.

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Op maandag 22 april 2002 16:51 schreef Bosmonster het volgende:
Je kunt geen document.write's meer doen als je document al klaar is dus.. das al paar keer gezegd.. Heb dit voor je in elkaar gezet en lijkt te werken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<title>include test</title>
<script id="livestats" type="text/javascript" src="http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false"></script>
<script type="text/javascript">
function loadScript(src){
document.body.innerHTML+="Loading...<br>";
    if(document.getElementsById){
        var livestats = document.getElementById("livestats");
            livestats.src = src;
    }
      setTimeout("loadScript('"+src+"')",5000);
}
function startLoad(){
    setTimeout("loadScript('http://www.searstower.org/cgi-bin/LiveStats.pl?59699&Alert=false')",5000);
}

onload = startLoad;
</script>
</head>
<body>
</body>
</html>

Deze code is niet compleet en warschijnlijk zal door de caching het hele script na de eerste keer niet meer ververst worden. Mogelijk kun je een random waarde nog aan het script toevoegen iedere reload.
Ik heb net geprobeerd cijfers achter de URL van het script toe te voegen..helaas haalt Bill em dan nog steeds uit zijn cache ;(

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Hmm.. volgens mij ligt het toch niet aan de cache, maar aan de src-wissel die helemaal niet zorgt voor een reload...

Ik ben ff aan het kijken.. vin het wel interessant :)

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Op maandag 22 april 2002 17:51 schreef Bosmonster het volgende:
Hmm.. volgens mij ligt het toch niet aan de cache, maar aan de src-wissel die helemaal niet zorgt voor een reload...

Ik ben ff aan het kijken.. vin het wel interessant :)
:) Ik ook....alleen zo lastig dat ik er niet uitkom...dit is echt iets voor doorgewinterde javascript klussers (slijm, slijm :P )

;)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Het domme is, dat hij wel een versie JS ophaalt, maar zelf geen bezoek zeg maar aan die site, waardoor de counter van dat script niet verhoogt wordt...

Als ik echter in een ander venster op refresh blijf rammen krijg ik in mn andere refresh scriptje wel steeds de nieuwe waarden :P

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Ik heb afgelopen avond ook nog even lopen klussen, maar het wil niet ;(
Iemand anders nog briljante ingevingen?

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Kick....

Nog geniale javascripters onder ons die dit kunnen?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

* SchizoDuckie gaat ff klussen voor je...

Stop uploading passwords to Github!


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Alstublieft :)

www.nvlf.nl/track/

hij laadt de gegevens in in een dynlayer, en die geeft de array Station terug aan z'n parent.

Dan zet ie een SetTimeout(refresh, Station.TrackLength*1000), en de dan refresht ie zodra het nummer afgelopen is :)

Stop uploading passwords to Github!


  • Glacier
  • Registratie: Juli 2000
  • Niet online
Thanx!
Pagina: 1