Preload css-file of een preloader maken ?

Status
Niet open voor verdere reacties.

yammaski

Gebruiker
Lid geworden
9 mrt 2005
Berichten
284
Is er een manier om een css-file appart van de page waarin het zit, te preloaden ?
In de css zitten 92 fontbestanden (.ttf en .eot) en dit kan enige seconden duren (4 à 5 sec), hangt ook af van browser.
IE laadt alles al op terwijl FF pas laadt als het een font nodig heeft (dacht ik).
Ik testte met pingdom, deze doet een simulatie van je pagina upload.

Of is het misschien beter om een "preloader" te maken ?
Als je moet wachten op een volledige pagina, klikt men al gauw verder ... :(
 
IE laadt alles al op terwijl FF pas laadt als het een font nodig heeft (dacht ik).
Dat zou je (na een "schone start", met een lege cache) moeten kunnen zien als je de pagina oproept, en daarna in de betreffende cache-map van IE of FF gaat kijken wat er in staat.

Als je het grote css-bestand met ttf's/eot's (van, laat me raden, 7MB ;) ) rechtstreeks in de <head> van een voorafgaande pagina plaatst (op een andere plaats mag het niet!), verschuift het probleem van het langzaam inladen naar die vorige pagina. - Dat werkt dus niet.

Als je bezoeker een vaste route van x pagina's vooraf heeft om naar de pagina met al die nodige css te komen, ligt het wat anders dan als je er vanuit het menu met 1 stap kunt komen. Bij x pagina's vooraf zou je het grote css-bestand in x kleinere bestanden kunnen splitsen, en op elke passerende pagina er eentje extra bij nemen.
Maar dan nog vertraagt het de voorafgaande pagina's.

Ik zou kiezen voor opsplitsen in een aantal kleinere bestanden, en die dan (allemaal) met een "postloader" aan alle voorafgaande pagina's hangen. Wat al binnen is, wordt niet nog eens binnengehaald; wat halverwege was en wat erna komt, komt in de volgende ronde aan de beurt. Dan heb je steeds zo veel mogelijk alvast in voorraad, onafhankelijk of een bezoeker nu 3 seconden op pagina 1 en 20 seconden op pagina 2 verblijft (of omgekeerd), enz.

Onder het motto "The art and craft of postload preloads" (na een Google op preload css file) kwam ik deze post tegen. Zit daar wellicht wat bij?

Met vriendelijke groet,
CSShunter

O - een hele andere invallende gedachte! :)
We laten de tijdrovende "brute force"-methode van alle 92 font-bestanden zitten, en proberen slim te zijn. Als je nu eens niet het hele CSS-bestand met alle fonts binnenhaalt, maar alleen wat de bezoeker nodig heeft? Dan zou moeten kunnen met:
  • De eerste pagina, waarin de bezoeker zijn keuze van lettertype maakt.
  • Na de klik op het lettertype wordt het type-van-keuze als variabele genoteerd, en opgeslagen in een cookie. Ook alle andere (eventueel) al ingevulde keuzes gaan in een cookie.
  • Bij de mouse-up van de lettertype-keuze wordt als de wiedeweerga omgeschakeld naar:
  • De tweede pagina, die volstrekt identiek is aan de eerste pagina, maar nu (via de uit het cookie opgehaalde fonttype-variabele) met de voor dat lettertype nodige font-ttf in de css van de <head>.
  • Ook alle andere al ingevulde variabelen worden dankzij de cookies weer "voor-ingevuld".
  • Het aangevraagde font toont zich, en de bezoeker kan gewoon doorklikken.
  • Mocht het lettertype niet bevallen, dan herhaalt zich dit met een nieuwe versie van de tweede pagina.
Zou dat de snelheid bevorderen?
 
Laatst bewerkt:
Dat zou je (na een "schone start", met een lege cache) moeten kunnen zien als je de pagina oproept, en daarna in de betreffende cache-map van IE of FF gaat kijken wat er in staat.
Ik heb het getest, en inderdaad FF laadt de fonts pas als hij ze nodig heeft. IE laadt alles direct.


Als je het grote css-bestand met ttf's/eot's (van, laat me raden, 7MB )
Juist, maar ik heb het kunnen herleiden tot 3,45 Mb mèt 50 fonts (4 meer)! ;)
Op de pagina waar de fonts nodig zijn heb ik 1 groot css bestand met alle @fonts in.
Dan heb ik deze css verdeeld over 6 kleine css bestandjes die ik aan de meest bezochte paginas heb gekoppeld.
Als men deze paginas eerst bezoekt laadt men telkens al enkele fonts. De bezoeker moèt altijd langs een bepaalde pagina alvorens hij op de "Detail_EigenTekst" pagina komt. Hier heb ik een melding gezet dat het enkele seconden kan duren omwille van de fonts die opgeladen moeten worden. Bezoekers zijn dus verwittigd.

Ik had eerst een soort "pageloader", maar het bleek dat deze pas z'n werk deed als alles al geladen was. Niet nodig dus !
 
Op de pagina waar de fonts nodig zijn heb ik 1 groot css bestand met alle @fonts in.
Op dit moment is dat er niet, de Arial Black wordt een TNR. :P
Ik had eerst een soort "pageloader", maar het bleek dat deze pas z'n werk deed als alles al geladen was. Niet nodig dus !
Klopt, jij hebt alleen iets aan een css-postloader.

Maar ik zou niet het grote css-bestand koppelen aan de invul-pagina. Dan gaat het effect van de al geladen kleintjes (voor zover al geladen dan) weer helemaal verloren! :confused:
Want het grote css-bestand ziet de browser als nieuw bestand, en dat gaat ie dus in z'n geheel binnenhalen, met alle tijd die dat kost.
Je kunt beter in de <head> een lijstje maken van alle 6 losse kleintjes, die samen dezelfde css bevatten.
Als de browser dan een kleintje tegenkomt dat er al is (ziet ie aan bestandsgrootte en server-datum), wordt dat niet nog eens gedownload.

Met vriendelijke groet,
CSShunter
 
Op dit moment is dat er niet, de Arial Black wordt een TNR
TNR ... nu nog ? Zou niet mogen ! :confused: Ik had alles grondig getest.

Je kunt beter in de <head> een lijstje maken van alle 6 losse kleintjes, die samen dezelfde css bevatten
Bedankt. Deze 6 samen op de invulpage. En elk nog eens bij een andere page. Dat was toch je bedoeling ?
HTML:
<link href="../Css/EigenTekst_A_B.css" rel="stylesheet" type="text/css" />
<link href="../Css/EigenTekst_C_D.css" rel="stylesheet" type="text/css" />
<link href="../Css/EigenTekst_E_K.css" rel="stylesheet" type="text/css" />
<link href="../Css/EigenTekst_L_R.css" rel="stylesheet" type="text/css" />
<link href="../Css/EigenTekst_S_T.css" rel="stylesheet" type="text/css" />
<link href="../Css/EigenTekst_U_Z.css" rel="stylesheet" type="text/css" />
 
Deze 6 samen op de invulpage. En elk nog eens bij een andere page. Dat was toch je bedoeling ?
Yes! (alleen hebben ze in het echt andere namen, zag ik).
TNR ... nu nog ? Zou niet mogen !
Als boodschapper van het slechte nieuws wil ik niet graag onthoofd worden, maar ... bij mij op m'n oude Firefox3 pakt ie 'm niet; kijk.
Nu even de rest bekijken:
  • Firefox 3.6.3 ... is oké.
  • Internet Explorer 7 ... doet het goed.
  • Internet Explorer 6 ... (even de virtuele bak opstarten) ... in orde.
  • Internet Explorer 8 ... (even naar de laptop) ... doet het.
  • Opera 9.21 ... ai, naks.
  • Opera 9.64 ... hoei ... nop.
  • Opera 10.1 ... ja, doet 't.
  • Safari 4.0.2 ... oké.
  • Chrome ... ook goed.
- Meer heb ik niet.
't Zijn dus de oudere versies die steken laten vallen. - Misschien zou je daarvoor een boodschapje moeten inbouwen als "Wanneer u de lettertypes niet ziet veranderen, maakt u gebruik van een oude versie browser. Alle nieuwere versies doen het wel: een goede gelegenheid om u browser te updaten? Dat is ook goed voor de veiligheid van uw computer!"

Verder merkte ik al testend op, dat de startpagina van de site met een flash-intro werkt. Wie echter geen geschikte flash (plugin) heeft, of geen zin heeft die eerst te downloaden, kan de site niet binnen: het knopje "skip intro" zit óók in de flash!
Als je daar een gewoon html-knopje van maakt, kan iedereen binnenkomen! :)

Met vriendelijke groet,
CSShunter
 
Misschien zou je daarvoor een boodschapje moeten inbouwen
Is gebeurd.

Als je daar een gewoon html-knopje van maakt, kan iedereen binnenkomen
:thumb:
Is ook gebeurd. Ik heb in passant hier ook enkele css'jes bij ingestoken en de "film" wat ingekort. Het is alsof het werkt als een preloader, bestanden worden opgeladen terwijl de flash afspeelt. Of is dit enkel hier bij mij ?
En de bgcolor blijft wat achter, misschien gewoon wit laten gemakshalve ?:cool:
 
... gebeurd ... gebeurd.
Mooi! :thumb:
... Of is dit enkel hier bij mij ?
Nee, bij mij ook. :)
En de bgcolor blijft wat achter
Heb ik hier geen last van (niet in FF, niet in IE).
- Nog wat voor de finishing touch:
  • Ik heb braaf zitten kijken tot de flash-intro afgelopen zou zijn om dan iets in werking te zetten. Dat gebeurt echter niet. Het SkipIntro blijft staan, alsof er nog iets zal komen. Dus ik wachten totdat de kikker weer iets vangt... nop! - Ik weet niet of het mogelijk is met actionscript, maar misschien zou je op 't laatst een Enter-knopje kunnen tonen om op te klikken om verder te gaan?
  • Op de FAQ-pagina heb je een voorbeeldje "spiegelbeeld" met de vlammen staan. Nou loeien in dat voorbeeld de vlammen in spiegelbeeld om een horizontale symmetrie-as, en is het effect hetzelfde als je twee keer een gewone sticker bestelt en de ene gewoon en de andere 180° gedraaid (op z'n kop) monteert! :P - De vlammen van HotFlame44 lijken me duidelijker: http://www.frogstyling.be/Asp/Detail_200mm.asp?ProductID=122&CatID=23. Nu zie ik dat ik voor mijn linker- en rechterportier duidelijk een andere moet hebben, omdat anders op één van de twee deuren de vlammen tegen de rijrichting in gaan. ;)
Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
een Enter-knopje
In flash had ik een knopje voor het geluid en een skip intro dat veranderde in enter site na de "voorstelling".
Maar omdat je zei het in html te maken, heb ik het even zo opgelost.
Moet eerst nog andere dingen aanpassen (ben volgende week met vakantie:cool:).

voorbeeldje "spiegelbeeld"
En vwolla "spiegelbeeld"


Als je nog tips voor aanpassingen/verbeteringen hebt ... always welcome ! :)
 
Laatst bewerkt:
Over de flash.
Tot even geleden had ik bij de flash-intro steeds de associatie: "kikker vangt met tongetje een nieuwe sticker", zoals een kameleon beresnel zijn tong uitrolt en er een vliegje mee binnenhaalt. - Maar nu ik het nog eens bekijk, zijn het eigenlijk de kikkeroogjes die even uitpuilen en focussen op de nieuwe sticker. Dat kwam bij mij dus niet over. Wat voor mij beter zou werken:
  • De oogjes in het klein monteren aan het eind van de rode focus-stralen: zo.
  • En dan de flash eindigen met de oogjes gewoon op hun plaats: zo.
  • Effect wordt zoiets als: dit.
Dan is ook het visueel verband met de latere oogjes in de kleurenwaaier e.d. duidelijker gelegd.
Dacht ik zo. :)
CSShunter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan