[JS/PHP/HTML] Images laden nadat pagina geladen is

Pagina: 1
Acties:

  • BlueAce
  • Registratie: November 2002
  • Laatst online: 09-01-2021
Ik beheer al een tijdje een systeem waar het (kort beschreven) mogelijk is voor gebruikers om tekst en plaatjes toe te voegen. De plaatjes worden op gratis diensten (zoals imageshack) gehost.

Volgende probleem: als de webspace waarop deze images worden gehost traag is, dan laad de pagina dus ook traag. Als ze niet bestaan, dan duurt het ook ff voordat je uberhaupt een pagina te zien krijgt.

Nou lijkt het mij logisch dat EERST de tekst geladen wordt, en DAARNA de plaatjes, maar kennelijk is dat hier toch niet zo.

Is er een manier waarop ik dit via bijvoorbeeld Javascript kan afdwingen? Dus eerst de pagina opbouwen, en daarna de images. Of is het een PHP/server instelling?

Thx alvast :)

Verwijderd

BlueAce schreef op 14 oktober 2004 @ 13:04:

Is er een manier waarop ik dit via bijvoorbeeld Javascript kan afdwingen? Of is het een PHP/server instelling?
Wedervraag:
Kun je zoiets niet uitzoeken door "gewoon" in een reference manual te kijken? Dat doen "wij" namelijk ook als we iets willen weten.

  • BlueAce
  • Registratie: November 2002
  • Laatst online: 09-01-2021
Thx man, dat wist ik nog niet :/

Ik heb al meerdere dingen zelf geprobeerd zonder resultaat, vandaar dat ik vraag om andere ervaringen / tips. Is that a crime?

offtopic:
Dit is al de honderste keer dat ik hier iets post en gelijk de stempel "n00b" krijg. Is dit hier tegenwoordig normaal ofzo?

Verwijderd

Topicstart checklist

Heb ik ooit zelf geschreven voor mensen als jij. Verder maak ik er geen woorden aan vuil.

[ Voor 6% gewijzigd door Verwijderd op 14-10-2004 13:28 ]


Verwijderd

Nuh joh, je moet het even anders zien

Je heb namelijk geen voorbeelden gegeven waaraan wij kunnen zien dat je al iets geprobeerd hebt.

Post anders stukjes code, javascriptjes of css , waaruit blijkt welke pogingen je onder nomen hebt. :)

Anders gaan we tips geven die je al geprobeerd hebt, das toch zonde


* sorry Cheatah nu heb ik het gedaan voor je :w

[ Voor 14% gewijzigd door Verwijderd op 14-10-2004 13:30 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Zoiets kun je niet afdwingen, dat is browserafhankelijk. Wel kun je een script maken dat zoiets voor je doet maar dat wil je denk ik niet.

  • BlueAce
  • Registratie: November 2002
  • Laatst online: 09-01-2021
Verwijderd schreef op 14 oktober 2004 @ 13:28:
Topicstart checklist

Heb ik ooit zelf geschreven voor mensen als jij. Verder maak ik er geen woorden aan vuil.
"Mensen zoals jij" :D Je kent me uberhaupt niet kereltje, net zo min als ik jou ken. Denken voor je typt, en bestempel niet iedereen hier als een amateur. Er zijn namelijk mensen die hun brood verdienen met hobby's van de n00bs ;)

Ik zie niet in waarom ik voorbeelden moet noemen als ze toch niet werken :) Daarnaast heb ik nu zoveel geprobeerd dat ik alles alweer gewist heb, geen code voorradig dus helaas, maar ik kan het proberen uitleggen:

Ik heb geprobeerd eerst in javascript alle images een "display:'none'" te geven, en daarna bij een "onload" weer een "display:''" mee te geven. Dat werkt dus niet, maar opzich is dat wel logisch. Ook gekeken naar de PHP instellingen maar die lijken me niet echt relevant.

Images preloaden zijn genoeg scripts voor, maar geen enkele heeft hier toepassing. Google kan me ook niet verder helpen, daarom hier deze post.

Zo beter? :/

[ Voor 8% gewijzigd door BlueAce op 14-10-2004 13:58 ]


  • dev icey
  • Registratie: Augustus 2003
  • Laatst online: 09-12-2025
Je zou heel lelijk alle plaatjes in divjes kunnen gaan stoppen, en dan als de pagina geladen wordt op een of andere manier een js script aanroepen(dmv bijv een iframe) om de innerhtml ervan aan te passen naar de plaatjes. Op die manier zou je ook alle plaatjes 1 voor 1 kunnen laden.

Verder ben ik dit probleem nooit tegengekomen, dus dit is zomaar een ideetje(wat natuurlijk heel lelijk is ;)). In iedergeval probeer zo min mogelijk te prutsen met javascript etc, want dat kan af en toe nog eens voor lelijke problemen zorgen. Ook iframe zorgt voor mindere compabiliteit, dus je zal een afweging tussen dat en laadtijd.

agreed met hierbeneden :)

[ Voor 3% gewijzigd door dev icey op 14-10-2004 14:39 ]


Verwijderd

Voor zover ik weet (en dan alleen de Gecko engine) gaat het zo:
  • Content marked up as HTML data enters Gecko either from the network or a local source
  • Gecko parses the HTML data, sending style commands to the CSS parser.
  • HTML data is modeled as a tree structure - the Document Object Model
  • CSS rules specify how elements of the DOM should look - font size, image size, etc.
  • The View Manager negotiates with the native operating system to figure out where on the display area the data will be drawn. It then tells the system which part of the display area needs to be repainted.
Volgens mij komen de plaatjes altijd als laatste aan de beurt, Mozilla gaat gewoon de pagina alvast weergeven, ook al zijn de plaatjes er nog niet. Dat IE het anders doet, tja.

Ik vind dat het helemaal niet je taak is om dit soort voorzieningen te gaan inbouwen, omdat een server weleens traag kan zijn. Laat dan liever een tijdelijke pagina zien met iets in de trend van "Items worden geladen een ogenblik geduld a.u.b" Met een mooi animerend gifje er op.

  • BlueAce
  • Registratie: November 2002
  • Laatst online: 09-01-2021
@dev icey: dat is idd een beetje een omslachtige manier ben ik bang. Heb het ook al geprobeerd maar dat vereist nogal veel aanpassingen.

@Shadow333: Thx, daarmee wordt het me al wat duidelijker. Ik vind echter wel dat het mijn taak is om ervoor te zorgen dat de pagina zo snel mogelijk loopt, en om idioten voor zichzelf te behoeden. Misschien moet ik gewoon afbeeldingen zelf gaan hosten, of toch: een grote FAQ erbij waarin wordt uitgelegd dat je pagina snelheid afhangt van je webspace.

Geen technische oplossing dus, meer een voorlichting :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

BlueAce schreef op 14 oktober 2004 @ 15:01:
@dev icey: dat is idd een beetje een omslachtige manier ben ik bang. Heb het ook al geprobeerd maar dat vereist nogal veel aanpassingen.

@Shadow333: Thx, daarmee wordt het me al wat duidelijker. Ik vind echter wel dat het mijn taak is om ervoor te zorgen dat de pagina zo snel mogelijk loopt, en om idioten voor zichzelf te behoeden. Misschien moet ik gewoon afbeeldingen zelf gaan hosten, of toch: een grote FAQ erbij waarin wordt uitgelegd dat je pagina snelheid afhangt van je webspace.

Geen technische oplossing dus, meer een voorlichting :)
Je kunt wel een kale pagina maken en dan in de onload een script zetten die dan nog een keer de images gaat laden, maar dat is ranzig en te omslachtig aangezien alle sites die externe plaatjes gebruiken hier last van hebben. Het is dus normaal. Ik heb op GoT ook wel eens dat sommige plaatjes niet binnenkomen omdat er 1 usericon loopt te kutten (zoals die van Basszje bijvoorbeeld).

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Naar mijn mening is het zo dat als jij het jouw verantwoordelijkheid vind dat die pagina snel loopt, je ook zelf moet zorgen voor de oplossing, en dus de images zou moeten gaan hosten. Zeker als die hele site om de plaatjes draait. Als dat niet zo is vind iedereen het denk ik ook wel gewoon acceptabel dat externe plaatjes later laden...
Maar beantwoord je vraag helaas niet :P

DM!


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
BlueAce schreef op 14 oktober 2004 @ 13:44:
[...]
Images preloaden zijn genoeg scripts voor, maar geen enkele heeft hier toepassing.
volgens mij ligt daar wel de oplossing, behalve dat het een soort post-loading wordt. Zo ff uit het hoofd hoor, pin me er niet op vast:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
function postload() {
    images=document.getElementsByTagName("img");
    for(n = 0; n < images.length; n++) {
        img = images[n];
        if(img.className =="offsite") {
            img.src = img.alt;            
        }
    }
}
</script>
<body onload="postload()">
    [img]"blank.gif"[/img]
    [img]"blank.gif"[/img]
    [img]"blank.gif"[/img]
</body>


[edit]

wat op zich nog wel aardig zou zijn, is dat je met PHP kijkt hoe groot je plaatjes zijn, zodat je mbv width= en height= de blank.gif kunt stretchen. zo verspringt je layout ook niet meer nadat de html gerenderd is.

ook leuk om van blank.gif een animated gifje te maken een zandlopertje ofzoiets...

[edit3]
hele berg overbodige rommel verwijderd

[ Voor 118% gewijzigd door Genoil op 14-10-2004 19:03 ]

Pagina: 1