Beste,
Voor een nieuw project heb ik gekozen om jQuery te gebruiken.
Echter stoot ik al meteen op een probleem waar ik niet meteen een oplossing voor vind.
Het zit zo:
Op de index laat ik php-pagina's laden in een div.
Alles werkt perfect behalve het feit dat de javascript in de php-pagina's blijven laden.Code:function Show(page, att){ HideAll(); $("#outer_message").load("pages/"+page+".php?x="+att); $('#outer_message').show(100); } function HideAll() { $('#outer_message').hide(); //location.reload(); }
Waneer ik een pagina sluit (dus met HideAll) is deze niet meer zichtbaar (goed).
En wanneer ik deze opnieuw open is hij wel terug zichtbaar (ook goed).
Maar het javascript gedeelte in de pagina wat geladen wordt, wordt nogmaals geladen.
Er zit bijboorbeeld een functie is wat een gedeelte van de php-pagina iedere 5 seconden herlaad.
Wanneer je regelmaig sluit en terug opent wordt dit niet meer iedere 5 seconden geladen maar veel vaker.
Ik heb hide() ook al eens vervangen door empty() maar dit helpt niet.
Ik heb zelf remove() gebruikt, en een nieuwe div met zelfde id laten maken in jQuery waarna de pagina wordt geladen, maar het resultaat is hetzelfde als met de gewone hide().
Nu lijkt het erop dat je javascript blijft laden (ook al wordt de div verwijderd en opnieuw aangemaakt).
Wanneer ik het de volledige website herlaad met location.reload() loopt het wel terug goed omdat het script dan wel stopt.
Heeft iemand hiet een oplossing voor?
Ik ben namelijk een beetje zot aan het worden.
Alvast erg bedankt,
Mvg Wouter
- Hide() Empty() Remove() maar script blijft laden
-
01-03-2015, 16:10 #1
- Berichten
- 212
- Lid sinds
- 17 Jaar
Hide() Empty() Remove() maar script blijft laden
-
-
01-03-2015, 21:04 #2
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: Hide() Empty() Remove() maar script blijft laden
Jip, is logisch de pagina die je inlaad zal ook de daarin te vinden javascripts opnieuw uitvoeren.
-
01-03-2015, 21:07 #3
- Berichten
- 212
- Lid sinds
- 17 Jaar
Re: Hide() Empty() Remove() maar script blijft laden
Ja dat vond ik het enige logische aan dit probleem.
Maar zodra je de inhoud van de div (waar de pagina in geladen wordt) verwijderd, blijft het script gewoon doorlopen.
In dit script zit een setInterval en ik zal dus gebruik moeten maken van een clearInterval alvorens de pagina opnieuw te laten laden.
Ik heb dit nog wat opgezocht en dit lijkt mij de enige mogelijke oplossing
-
01-03-2015, 21:14 #4
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: Hide() Empty() Remove() maar script blijft laden
Jah scripts eenmaal gecached blijven ze draaien ook al verwijder je ze daarna.
Er zijn oplossingen genoeg voor, maar licht er natuurlijk aan wat je precies probeert te bereiken.
Maar je zal waarschijnlijk een iets gecompliceerde setup moeten maken.
Heb je geen (werkend) voorbeeld?
-
01-03-2015, 21:24 #5
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: Hide() Empty() Remove() maar script blijft laden
Wat je zou kunnen doen, is een variabele definiëren in de global scope in de hoofd pagina.
bijv: var timer = null;
in het door javascript geladen pagina zet je dan:
if(timer) clearInterval(timer);
timer = setInterval(.......
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic