Avatar billede mortenbock Nybegynder
10. februar 2006 - 16:19 Der er 39 kommentarer og
1 løsning

Download rækkefølge

Hej eksperter

Jeg har et lille problem med et javascript slideshow der "stjæler" båndbredde på min forside, således at baggrundsgrafik mm. først bliver hentet når hele slideshowet er hentet (sådan ser det i hvert fald ud).

Er der en måde hvorpå jeg kan sikre at mine design elementer bliver hentet før slideshowet går igang?

Her er den måde det er bygget op på (basalt):

<head>
<link href="styles/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="slideshow.js"></script>
</head>
<body>
<div>
<script type="text/javascript">
new fadeshow(teaser, 746, 200, 0, 8000, 0, "R")
</script>
</div>
</body>

Kan jeg på en eller anden måde få

<script type="text/javascript">
new fadeshow(teaser, 746, 200, 0, 8000, 0, "R")
</script>

til at vente med at afvikles indtil resten af siden er hentet?
Avatar billede horsmark Nybegynder
10. februar 2006 - 16:23 #1
window.onload = function () ...

men så venter den også til at hele siden og alt grafikken er loaded
Avatar billede mortenbock Nybegynder
10. februar 2006 - 16:26 #2
Hvor skal det sættes ind?
Avatar billede mortenbock Nybegynder
10. februar 2006 - 16:31 #3
<script type="text/javascript">
function init() {
new fadeshow(teaser, 746, 200, 0, 8000, 0, "R");
}
window.onload = init;
</script>

Er det sådan?
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:00 #4
ja - virker det ? (tror det ikke)
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:01 #5
kunne godt se ud som om slideshowet kigger på den div den er i
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:03 #6
Det virker ikke nej... altså slideshowet kommer frem præcis som før, og baggrundsgrafikken dukker ikke op før næste billede dukker op (8 sekunder).
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:04 #7
har du en url ?
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:10 #8
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:22 #9
Lige pt er der kun ét billede i slideshowet (har fjernet de andre) og så ryger loadtiden langt ned. I hvert fald i forhold til de 8-9 sekunder den var før.
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:26 #10
det virker da fint (sidder på en 2 MBit) både i IE og firefox ?
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:28 #11
nu har jeg lagt flere fotos ind igen. Og vupti, så stiger load tiden helt vildt.

Kan det virkelig øge tiden med fleres sekunder at jeg forlænger et array?
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:29 #12
2 Mbit giver nok ikke de store problemer. Jeg sidder selv på en 512 kbit. Men hvad med folk på 256kbit eller folk med modem? Guderne må vide hvor lang tid det tager for dem....
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:29 #13
nej kan nu godt se hvad der er problemet
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:30 #14
prøvevt i headeren at preloade imaga´et du bruger til baggrund

var bgimg = New Image()
bgimg.src = 'blabla.gif'
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:33 #15
med lille n i new
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:34 #16
Uha, der er mange.... og de er forskellige fra side til side...

Kan man virkelig ikke få det slideshow til at vente med at starte? :-(
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:35 #17
Jeg har også lagt mærke til at jo flere billeder der er i mit slideshow array, jo længere tager det at hente siden. Så det vil altså sige at den henter hele stakken på én gang... det er jo også lidt upraktisk....
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:41 #18
så må du bygge dit egte slideshow der _først_ henter det næste billede når siden er loadedog der er brug for det næste billede
Avatar billede horsmark Nybegynder
10. februar 2006 - 17:42 #19
tror det er det der sker på http://tdc.dk/
Avatar billede mortenbock Nybegynder
10. februar 2006 - 17:51 #20
puha... ikke just det nemme fix jeg håbede på :-(
Avatar billede horsmark Nybegynder
10. februar 2006 - 18:03 #21
har være inde og kigge i koden ... den udskriver direkte hvilket er noget knald...
Avatar billede mortenbock Nybegynder
10. februar 2006 - 18:09 #22
ok. crap. Nogle anbefalinger af et lignende slideshow der gør det ordentligt?
Avatar billede horsmark Nybegynder
10. februar 2006 - 20:06 #23
hmm næh jeg ville da hellere lige bygge den om du har hvis jeg var dig *s*
Avatar billede mortenbock Nybegynder
10. februar 2006 - 21:33 #24
Det må jeg så forsøge... er dog ikke så skarp i javascript, så den er lidt svær at finde hoved og hale i.
Avatar billede horsmark Nybegynder
11. februar 2006 - 06:29 #25
Det site du laver er det på frivillig basis eller er det en betalt opgave ?
Avatar billede mortenbock Nybegynder
11. februar 2006 - 11:40 #26
Det er en blanding. Det er et pilotprojekt, hvor jeg er ved at udvikle et administrationssystem til.
Avatar billede horsmark Nybegynder
11. februar 2006 - 11:57 #27
allrighty... du kan evt smide den ind under kategorien [opgaver] evt.
Avatar billede mortenbock Nybegynder
11. februar 2006 - 12:20 #28
Det er hermed gjort: http://www.eksperten.dk/spm/687170

Jeg lader lige spørgsmålet stå i tilfælde af at der er nogen der kan svare på det oprindelige spørgsmål her: Kan det lade sig gøre først at udføre slideshow funktionen, når hele resten af siden er hentet?
Avatar billede roenving Novice
11. februar 2006 - 15:43 #29
Den simple løsning er at sætte preload-funktionen til først at gå i gang, når siden ellers er loadet !-)

-- så horsmarks indledende bemærkning skal bare implementeres i det, ellers ved første kig, ganske udmærkede script !o]

-- udkommentér disse linjer, og tilføj nogle andre:

/*
this.postimages=new Array() //preload images
for (p=0;p<theimages.length;p++){
this.postimages[p]=new Image()
this.postimages[p].src=theimages[p][0]
}
*/

-- og de andre kunne f.eks. se sådan ud:

<script type="text/javascript">
var f1 = new fadeshow(fadeimages, 140, 225, 0, 3000, 1, "R")
var f2 = new fadeshow(fadeimages2, 140, 225, 0, 3000, 0)
window.onload = function(){
  f1.postimages = new Array();
  for (p=0;p<f1.theimages.length;p++){
    f1.postimages[p]=new Image()
    f1.postimages[p].src=f2.theimages[p][0]
  }
  f2.postimages = new Array();
  for (p=0;p<f2.theimages.length;p++){
    f2.postimages[p]=new Image()
    f2.postimages[p].src=f2.theimages[p][0]
  }
}
</script>

-- og det er selvfølgelig absolut utestet !-)

-- jeg har ikke studeret koden så meget, at jeg ved, om de arrays benyttes under initialiseringen !o]
Avatar billede horsmark Nybegynder
11. februar 2006 - 15:48 #30
roenving -> såsnart objectet oprettes smider den en document.write() ... hvilket er helt hul i hatten *G*
Avatar billede horsmark Nybegynder
11. februar 2006 - 15:51 #31
Den smukke løsning ville være at ombygge dette script til et "helt" object

<div id="nisse_per_prutter_pingviner">
</div>

var myImageFader = fader(fadeimages, 140, 225, 0, 3000, 1, "R")
myImageFader.setContainerById("nisse_per_prutter_pingviner")
window.onload = function () { myImageFader.start() }
Avatar billede mortenbock Nybegynder
11. februar 2006 - 15:54 #32
horsmark> Betyder det at roenvigs løsning ikke virker?
Avatar billede roenving Novice
11. februar 2006 - 15:58 #33
-- brug af document.write er ikke anbefalelsesværdigt, da der ikke er nogensomhelst form for fremtidssikring, hvis man benytter sådanne ting ...
Avatar billede horsmark Nybegynder
11. februar 2006 - 16:01 #34
ja det kræver lige en del omrokering og oprydning i klassen for at den er "lækker"...

roenving -> "HØRT!"
Avatar billede mortenbock Nybegynder
11. februar 2006 - 16:01 #35
Det vil sige at hele grund idéen i slideshow scriptet er for gammeldags?

Hvor finder jeg er script der er godt?
Avatar billede horsmark Nybegynder
11. februar 2006 - 16:12 #36
.oO(får sq helt lyst til at bygge et "ordentligt" slideshow til mit CMS på et tidspunkt)
Avatar billede mortenbock Nybegynder
11. februar 2006 - 16:20 #37
Hvad med den her? Den påstår at den kun preloader det næste foto:

<SCRIPT LANGUAGE="JavaScript">
<!--

/*
Script by FPMC at http://jsarchive.8m.com
Submitted to JavaScript Kit (http://javascriptkit.com)
For this and 400+ free scripts, visit http://javascriptkit.com
*/

//set image paths
src = ["image1.gif", "image2.gif", "image3.gif", "image4.gif"]


//set corresponding urls
url = ["http://freewarejava.com", "http://javascriptkit.com", "http://dynamicdrive.com", "http://www.geocities.com"]

//set duration for each image
duration = 4;

//Please do not edit below
ads=[]; ct=0;
function switchAd() {
var n=(ct+1)%src.length;
if (ads[n] && (ads[n].complete || ads[n].complete==null)) {
document["Ad_Image"].src = ads[ct=n].src;
}
ads[n=(ct+1)%src.length] = new Image;
ads[n].src = src[n];
setTimeout("switchAd()",duration*1000);
}
function doLink(){
location.href = url[ct];
} onload = function(){
if (document.images)
switchAd();
}
//-->
</SCRIPT>

<A HREF="java script:doLink();" onMouseOver="status=url[ct];return true;"
onMouseOut="status=''">
<IMG NAME="Ad_Image" SRC="image1.gif" BORDER=0>
</A>

<p align="center"><font face="arial" size="-2">This free script provided by <a href="http://javascriptkit.com">JavaScript Kit</a></font></p>
Avatar billede mortenbock Nybegynder
11. februar 2006 - 16:22 #38
hmm, den var vidst ikke så fleksibel nu jeg ser på den....
Avatar billede mortenbock Nybegynder
27. september 2006 - 20:16 #39
Smid et svar, jer der vil have point :-)

Jeg endte med at reducere antallet af billeder i slideshowet. Kunne ikke få det andet til at fungere.
Avatar billede horsmark Nybegynder
27. september 2006 - 21:06 #40
check
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester