Toon posts:

Win32 Apache / Html / SWF

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mijn probleem is een klein beetje ingewikkeld, maar ik zal het proberen duidelijk te maken.

Ik heb een swf bestand en dit leest via de ActionScript functie loadVariables een string in uit een bestand. Dit doet het af en toe tijdens het afspelen van de swf movie en die tekst komt dan op het scherm terecht. Als ik de swf gewoon van mijn computer draai werkt dat prima.

Nu heb ik een Apache webserver onder windows 32 hier staan en daar staat die swf ook op, in een html bestand. Als ik dat opvraag krijg ik de swf te zien met daarin de juiste tekst ( uit het bestand van de server ).

Maar als ik op de server de tekst verander, door het bestand te editen, dan verandert de tekst in de swf niet, dit is mijn probleem.

Het volgende heb ik al uitgevonden:

- Het juiste txt bestand komt niet in de swf terecht omdat het oude tekst bestand in de cache van de Client blijft zitten. Als ik het tekstbestandje uit de temporary internet files van de Client verwijder dan wordt het geupdate in de draaiende swf, deze laadt het dan dus wel opnieuw van de server.

- De Client blijft het tekst bestand wel aanvragen, de TCP verbinding die de Client heeft met de Server blijft gewoon open staan zoals de swf draait en dus af en toe de txt wordt opgevraagt.


Ik denk aan een van de volgende oplossingen:

- Op een of andere manier zorgen dat het txt bestand bij de client niet wordt opgeslagen in de cache

- Op een of andere manier zorgen dat de server bij een request van de client altijd het txt bestand opnieuw naar de client stuurd, ongeacht de versie van de client


Ik hoop dat een van jullie weet hoe ik een van deze twee dingen voor elkaar moet krijgen of eventueel een andere oplossing,

alvast bedankt,
sofixit, eigenlijk gewoon Stefan :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kun je met de functie loadVariables of gewoon met Apache aangeven dat die file expired is (dus een expire tijdstip in het verleden)?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Dat dacht ik dus ook, maar dan moet je dat elke keer doen als je de txt verandert .. dat levert natuurlijk nogal gezeik op als je dat een paar keer per dag doet .. dan zit je op een gegeven moment in 1960 te klooien :)

hebben trouwens meer mensen het probleem dat files niet goed refreshen met http ?

Verwijderd

Topicstarter
Ik zou trouwens ook niet weten hoe dat moet, gewoon de filedate van de file op je server naar "over een tijdje" zetten als je de txt verandert ofzo ?

en hoeveel verder moet je hem dan zetten, hij is natuurlijk al wel iets verder dan de vorige versie, ook al is het maar een paar seconde ofzo ...

werkt http wat dat betreft alleen met uren of dagen ofzo ?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

ik bedoel, kun je in Apache (met een .htaccess file ofzo) niet opgeven dat een bepaalde file een bepaalde expire date heeft?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Een ranzige maar mijns inziens werkende oplossing is om, ipv van een textfile er een script (.cgi, .php, .asp of iets dergelijks) van te maken, die als output de inhoud van de textfile heeft.

HTH :)

Verwijderd

Topicstarter
Ik heb de oplossing van .MrX geprobeert met het volgende bestandje data.php

code:
1
2
3
<?
echo "rtext=hoe gaat het ermee?";
?>


het werkt wel, de string wordt gewoon "hoe gaat het ermee?" maar ook als ik dit bestand verander in bijvoorbeeld

code:
1
2
3
<?
echo "rtext=hallo";
?>


wordt dit in mijn draaiende swf niet geupdate. Is het wel zo dat php scripts bij een aanvraag aan de server wel altijd opnieuw worden uitgevoerd?

de oplossing de .oisyn snap ik niet helemaal, ik denk dat dit komt doordat ik niet super handig ben met Apache, misschien kan iemand me daarover iets meer uitleg geven?

Verwijderd

Voor de PHP oplossing:
met een paar header()'s kun je de browser vertellen dat ie niet mag cachen/ de expire in het verleden ligt.
staat een uitleg bij http://nl.php.net/manual/nl/function.header.php#AEN28382
Pagina: 1