![]() |
Bildvisning med klickbara småbilder | Klickbar lista |
![]() |
![]() |
|||
JavaScript - klickbar text som visar en bild |
|||
Återanvända skript
Ofta är det mycket lätt att förändra JavaScript så att de kan göra något annat. Detta tänker jag visa i det här avsnittet. Vi vill att en textlänk skall kunna visa en bild, men när sidan först läses in skall det inte finnas någon bild alls på sidan. Besökaren väljer alltså själv om han eller hon vill se bilden, vilket gör att det inte känns lika långsamt att vänta på att bilden skall laddas. Det faktum att bilderna inte visas från början, minskar nedladdningstiden för den här sidan med nästan 7 sekunder för den som har ett 56.6-modem. Vi skall åstadkomma detta genom att återanvända skriptet från föregående avsnitt, men ändra det en del. |
|||
Det här blir resultatet | |||
Röda lejongap |
|||
Eftersom vi inte har någon bildtext att visa kan vi ta bort formuläret. Samtidigt tar vi förstås bort funktionen som annars skulle ha visat bildtexten, och matrisen med bildtexterna. Det enda som nu blir kvar av skriptet är kontrollen av webbläsarversionen och funktionen som visar bilden: |
<SCRIPT LANGUAGE="JavaScript"> |
|||
Av tabellen blev inte heller mycket kvar. Vi skall ju inte visa några klickbara småbilder eller utnyttja onMouseOver-hanteraren, så det räcker med vanliga länkar som anropar den enda kvarvarande funktionen visaBild(). I den enda återstående IMG-taggen sätter vi attributet SRC="" (två citationstecken direkt efter varandra), det vill säga att det inte visas någon bild alls. |
|||
<IMG NAME="startbild" SRC=""
BORDER="0" WIDTH="210"
HEIGHT="158"> |
|||
Och formuläret försvann alltså helt. Det här var allt som behövde göras. Det här är alldeles för enkelt!Så vi skapar en funktion till. Sidan kommer att laddas snabbt, eftersom den inte visar några bilder. Men när besökaren klickar på någon av bildlänkarna skall den bilden visas, och då måste den väl laddas? Nej, faktiskt inte - vi kan ordna det så att när sidan är färdigladdad, förladdas bilderna så att de ligger klara att visas när besökaren klickar. Det här gör vi med en funktion som anropas med händelsehanteraren onLoad, som vi lägger i den första BODY-taggen. Först funktionen - den ser ut så här och den skall ligga inom SCRIPT-taggarna i HEAD: |
|||
function smygLadda() { |
|||
Händelsehanteraren i BODY-taggen ser ut så här: |
|||
<BODY onLoad="smygLadda('bild1.jpg', 'bild2.jpg', 'bild3.jpg', 'bild4.jpg', 'bild5.jpg', 'bild6.jpg', bild7.jpg', bild8.jpg')"> |
|||
Händelsehanteraren gör att så snart sidan är färdigladdad, och medan besökaren i lugn och ro börjar läsa på sidan, laddas bilderna in i bakgrunden så att de finns beredda i cache-minnet när besökaren klickar på länken till någon av bilderna. Undersök skillnadenDu kan inte undersöka hur stor skillnaden i laddningstid blir med och utan den nya funktionen smygLadda() genom att kontrollera den offline i webbläsaren. Då hämtas bilderna från din hårddisk och det ger ingen tidsåtgång. Men du kan göra så här: Använd det här skriptet med till exempel sex bilder, men lägg bara hälften av dem i händelsehanteraren onLoad. Den andra hälften kommer då att laddas först när du klickar på länkarna. Skicka sedan upp sidan och bilderna till servern. Gå via Internet in på din sida och klicka på bildlänkarna, omväxlande på dem som finns i onLoad och på dem som inte finns där. Om du kopplar upp dig via modem, som de flesta gör, kommer du att märka att skillnaden blir ganska stor. Din övningsuppgiftGör om skriptet från Gör en bildvisning med klickbara småbilder på det här sättet. Lägg in den nya funktionen smygLadda() och koppla onLoad till hälften av bilderna. Undersök hur stor skillnad det gör för nedladdningstiden. Om du har en snabb internetanslutning (ej modem) lär du inte märka någon större skillnad, men de flesta av dina besökare gör det. |
|||
![]() |
|||
![]() |
Bildvisning med klickbara småbilder | Klickbar lista |
![]() |
![]() |
|||
© SupportData.Net |