login  Naam:   Wachtwoord: 
Registreer je!
 Forum

fake popup

Offline Gust - 22/07/2009 13:30
Avatar van GustMySQL interesse Ik heb een pagina met uitklapmenu's die zo'n 15 seconden laadt. De meeste preloaders zorgen ervoor dat het uitklapmenu niet meer werkt.

Daarom zoek ik het volgende:
als de hoofdpagina wordt geopend, opent er zich een tweede pagina vóór de hoofdpagina. (de inhoud vul ik zelf in). Na 15 seconden moet ie verdwijnen.

Bestaat dit?

22 antwoorden

Gesponsorde links
Offline Threetimes - 22/07/2009 13:38
Avatar van Threetimes PHP beginner Een pagina die 15 seconden laadt? Doe daar eerst iets aan...

Maar je kan een grote div voor je pagina zetten, en die met javascript laten verdwijnen. Let wel op dat je onload()-event pas wordt uitgevoerd als hij klaar is met laden, behalve in Safari.
Offline avdg - 22/07/2009 13:45
Avatar van avdg PHP gevorderde persoonlijke mening: ik zou zeker geen intro plaatsen op bijna gelijk welke site dan ook. Dat mag dan ook zo mooi zijn om naar te kijken, of te zeggen dat het indrukwekkend is. Veel gebruikers letten daar uiteindelijk niet op en zullen dat juist als irritand ervaren (want ze zijn meer geïnteresseerd in de inhoud van de site)
Offline Gust - 22/07/2009 13:55 (laatste wijziging 22/07/2009 14:16)
Avatar van Gust MySQL interesse Weten jullie ergens een popup script die na 10 seconden of zo weer verdwijnt? Een eenvoudige pagina die na een tijdje vanzelf verdwijnt is ook goed
Offline Martijn - 22/07/2009 14:22
Avatar van Martijn Crew PHP ik zou me echt veel meer richten op die 15sec te minderen... 15 is écht te veel. Ik zou de site al verlaten zijn na 5sec
Offline Gust - 22/07/2009 14:32
Avatar van Gust MySQL interesse Minder gaat niet. Vandaar mijn vraag
Offline henver - 22/07/2009 14:41 (laatste wijziging 22/07/2009 14:41)
Avatar van henver HTML gevorderde http://jaron.nl...oad-events/
Kan je bijvoorbeeld gebruiken om een div te creëren vòòr de pagina geladen is (in alle browsers). Deze div kan je na 15 seconden terug verwijderen.

PS: Om welke site gaat het?
Offline snxs - 22/07/2009 15:14 (laatste wijziging 22/07/2009 15:43)
Avatar van snxs Nieuw lid Het is altijd mogelijk die 15 seconden te verlagen. Anders kun je je content opdelen in verschillende stukken, en die na elkaar laden, doormiddel van AJAX. Dan krijgt de bezoeker in ieder geval al een gedeelte content te zien.

Door een php PHP.net: flush te gebruiken direct na je head kun je je headers versturen. PHP.net: echo verzamelt namelijk alle echo's tot het einde van het script in een output buffer. Wanneer je PHP.net: flush eerder aanroept wordt dat gedeelte van de content al vast naar de browser gestuurd. Wanneer je het aan het einde van je head doet, zal hij ook meteen de CSS scripts inladen.

Let wel op, PHP.net: flush heeft een aantal minimum regels. Sommige browsers verwerken dit pas bij een bepaalde grote aan browsers.

Voor meer informatie over snellere websites:
Google IO presentatie

Zie ook mijn tutorial:
Dataverkeer besparen met mod_deflate
Offline Threetimes - 22/07/2009 16:04 (laatste wijziging 22/07/2009 16:13)
Avatar van Threetimes PHP beginner
snxs schreef:
...PHP.net: echo verzamelt namelijk alle echo's tot het einde van het script in een output buffer...
Dit is niet altijd waar, je kan output buffering aan/uit zetten. Uit is volgens mij standaard. Probeer eens de volgende code te doen:
  1. echo "Regel 1<br />\n";
  2. sleep(10);
  3. echo "Regel 2<br \>\nAls je de regels tegelijk ziet staat output buffering aan, als er 10 seconden pauze tussen de regels zit staat het uit";
edit: in ubuntu-server's php-pakket staat het standaard aan, maar als je het zeker wilt weten, kijk dan op PHP.net: ob_.
Offline Martijn - 22/07/2009 16:47
Avatar van Martijn Crew PHP
Citaat:
Voor meer informatie over snellere websites:
Google IO presentatie


koste 50min van mn leven, maar tis erg praktisch
Offline snxs - 22/07/2009 18:58 (laatste wijziging 22/07/2009 19:17)
Avatar van snxs Nieuw lid Deze output buffer staat standaard aan.

  1. <?
  2.  
  3. echo "Regel 1<br />\n";
  4. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n";
  5. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n<br />\n";
  6.  
  7. echo "Eerste sleep(10)<br />\n<br />\n";
  8. sleep(10);
  9.  
  10. echo "Regel 2<br \>\n";
  11. echo "Als je de regels tegelijk ziet staat output buffering aan, als er 10 seconden pauze tussen de regels zit staat het uit<br \>\n";
  12. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n";
  13. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n<br />\n";
  14.  
  15. echo "Flush hierna.<br />\n<br />\n";
  16.  
  17.  
  18. echo "Tweede sleep(10)<br />\n<br />\n";
  19. sleep(10);
  20.  
  21. echo "Deze regel komt weer later<br \>\n";
  22. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n";
  23. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n";
  24. echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />\n";
  25.  
  26. ?>


Het voordeel van de flush is dat de browser the afbeeldingen en scripts, etc. al kan preloaden. Maar goed, in de Google IO video vertelt de expert er meer over.

Jouw script gaat niet op, omdat er te weinig data wordt verstuurd, zodat de browser het nog niet verwerkt.

Gooi er een aantal alinea's Lorem Ipsum tussen. Zou moeten werken.

EDIT:
Works, perfectly.
Offline Gust - 23/07/2009 11:38
Avatar van Gust MySQL interesse Bedankt, ik heb het hier toegepast.

Bestaat dit ook op een omgekeerde manier? Bv dat er na 10 seconden het bovenste stukje tekst verdwijnt?
Offline snxs - 23/07/2009 17:04
Avatar van snxs Nieuw lid Ik hoop niet dat je die PHP sleep hebt gebruikt, want daar heb je helemaal NIETS aan, dit was alleen een voorbeeld van de PHP.net: flush functie.

En je kunt iets laten verstoppen met javascript.

  1. document.getElementById("ID van je paneel dat je wilt laten verwdijnen").style.display = "none";


Dit is een gokje hoor, de precieze syntax zal iets anders zijn, maar ik heb even de tijd niet om het op te zoeken.
Offline Gust - 24/07/2009 15:24 (laatste wijziging 24/07/2009 15:29)
Avatar van Gust MySQL interesse
snxs schreef:
Ik hoop niet dat je die PHP sleep hebt gebruikt, want daar heb je helemaal NIETS aan.

Oei, ik dacht dat dat de bedoeling was, het werkt anders wel hoor.

  1. <?
  2.  
  3. echo "<div align=\"center\">
  4. <p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Een ogenblik aub, de pagina is aan het laden...</font></p>
  5. <p><img src=\"preloader.gif\"></p>
  6. </div>";
  7.  
  8. sleep(10);
  9.  
  10. echo "<div align=\"center\"><a href=\"javascript:window.open('','_parent');window.close();\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">De pagina is nu geladen.<br>Sluit dit venster aub</font></a></div>";
  11.  
  12. ?>
Offline Martijn - 24/07/2009 15:29 (laatste wijziging 24/07/2009 15:30)
Avatar van Martijn Crew PHP als je php sleep(x) gebruikt, doet je hele script gewoon x seconden niets.

edit: Dus haal die flush() en sleep is weg

edit2:
Over de flush() ik gebruikte m laatst, en de site werd er trager van. Volgens mij heeft tpas zin als je head veel info heeft, en een gewoon huistuin en keuken siteje niet
Offline snxs - 24/07/2009 15:33
Avatar van snxs Nieuw lid Die sleep vertraagt het hele process met 10 seconden. De server gaat eigenlijk 10 seconden lang op zijn gat zitten en niets doen, tot de 10 seconden voorbij zijn. Dan gaat hij weer heerlijk zijn best doen.

Wat je beter kan doen:
Aan het einde van je HTML een dat bericht aan je paneel toevoegen, dan voegt hij het dus toe nadat hij de rest geladen heeft. Dit kun je op allerlei verschillende manieren doen.

Maar ik zou echt als eerste je wachttijden verkorten. Want het is vrijwel onmogelijk dat een normale website 15 seconden nodig heeft om te laden. Er moet iets niet helemaal goed zitten.
Offline Martijn - 24/07/2009 16:08
Avatar van Martijn Crew PHP wat creëerd die 15 sec? of iig het grootste deel ervan?
Offline Gust - 24/07/2009 16:39
Avatar van Gust MySQL interesse Het zit zo:

Je hebt de index, en die zorgt er voor dat er nog een 2de pagina opengaat, een soort van popup. In die popup staat de tekst "even geduld". En na 10 a 15 seconden zegt ie dat je de popup kunt sluiten. Dat is ongeveer de tijd die de index pagina nodig heeft om te laden.

Ik kon die popup ook vanzelf laten verdwijnen, maar dan krijg je zo een windows alert schermpje dat de pagina zichzelf probeert te sluiten of zoiets.

Hier zie je het voorbeeld
Offline Martijn - 24/07/2009 17:13 (laatste wijziging 24/07/2009 17:18)
Avatar van Martijn Crew PHP Ik ben ff je site aan t doorgaan, en 1 ding die je fout doet is dat je 3 div's met ID="content". Elk id mag maar 1x op een pagina voorkomen 

ik zie zo snel niet wat het probleem is, maar ik denk richting 1 van je js bestanden. En dan neig ik naar htmlgoodies
Offline snxs - 24/07/2009 19:59 (laatste wijziging 24/07/2009 20:17)
Avatar van snxs Nieuw lid We snappen het probleem Gust. Maar wat jij wil is een loader voor iets wat in eerste instantie helemaal niet lang zou moeten hoeven laden. De tijd die jouw script nodig heeft is gewoon te lang. Daar gaat iets mis.

Die hele loader zou je niet nodig moeten hebben. Dus als je ons advies aan zou willen nemen en even met ons naar de code wil kijken. Dan zou het probleem een stuk makkelijker opgelost moeten kunnen worden.

EDIT:
Ik heb even een kijkje genomen, en je maakt een MONSTERLIJK LANG formulier aan. Is dit formulier niet beter op te delen in verschillende stappen? Dat je dus eigenlijk door een "survey" geleidt wordt? Dat is ook veel gebruikersvriendelijker.

EDIT2:
De pagina doet er bij mij maar maximaal 2 seconden over om te laden. Dus ik snap het hele idee van jouw fake popup toch niet. 
Offline Martijn - 24/07/2009 20:40
Avatar van Martijn Crew PHP bij mij 17.099sec volgens YSlow 
Offline henver - 24/07/2009 23:42
Avatar van henver HTML gevorderde Bij mij meer dan een minuut, zit dan ook op smallband 
grrr Belgische downloadlimieten
Offline snxs - 25/07/2009 03:17
Avatar van snxs Nieuw lid Tuurlijk, Yslow! Kun je een screendumpje plaatsen van de grafiek? (Heb hem niet op mijn laptop staan)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s