Avatar billede hobbez Nybegynder
14. september 2005 - 10:04 Der er 12 kommentarer og
1 løsning

Hvilken effekt har et JavaScript i bunden af en HTML-side?

Jeg er i tvivl om dette spørgsmål hører hjemme under "Internet Exploder", "JavaScript" eller et helt tredje sted, så nu ender det her:

Hvilken effekt har et JavaScript der ligger i bunden af en HTML-side, hvis scriptet er længe om at eksekvere (eller ikke kan eksekveres?

Altså rent konceptuelt:

<HTML>
<HEAD>
<TITLE>Sidenavn</TITLE>
</HEAD>

<BODY>
Her er så indholdet af siden, med billeder og alt muligt.
..
..
..
..

<SCRIPT>
I bunden af siden ligger så JavaScriptet
</SCRIPT>

</BODY>

Hvad sker der hvis JavaScriptet (hvis vi i øvrigt antager at det er korrekt, og ikke giver fejl i browseren) er længe om at eksekvere eller ikke kan eksekveres:

- Hvis det fx. er 5 minutter om at eksekvere

- Hvis det forsøger at kalde en server/hente noget fra en server, som ikke svarer?

- Aldrig bliver færdig med at eksekvere (looper)

Bliver siden så vist? Eller bliver den først vist når JavaScriptet er eksekveret?

Eller i tilfælde af at JavaScriptet kalder en anden server: Bliver siden først vist, når JavaScriptet har fået kontakt med den anden server?

/Rob
Avatar billede roenving Novice
14. september 2005 - 12:50 #1
Javascript kalde en anden server fra klienten ?-)

-- hvis det er noget script, som afvikles direkte i browseren, så vil et loop, som bare fortsætter og fortsætter til sidst få browseren til at brokke sig, og spørge brugeren om det kan være rigtigt !-)

-- hvis det, som jeg har på fornemmelsen, er et (counter-)script, som sammensætter en url til et billede eller andet, og så udskriver det i browseren med document.write eller lignende, vil browseren blive frigivet i det øjeblik, det er skrevet til browseren, og så er det browseren, der i baggrunden forsøger at få udfyldt hullet, mens den fortsætter med at rendere resten af siden ...

-- af samme grund kan det anbefales, at lidt tungere konstruktioner først afvikles onload, så brugeren i hvert fald har noget at se på !o]
Avatar billede hobbez Nybegynder
14. september 2005 - 13:12 #2
Ja, JavaScript kalder en anden server fra klienten. Det kunne fx. være noget statistik (ikke en counter): Anden server kaldes så denne anden server kan logge kaldet i en database.

Men spørgsmålet er om siden vil blive vist, hvis scriptet ikke kan få fat i serveren (eller serveren er lang tid om at svare). Og det er specielt IE der ser ud som om den ikke vil vise siden. Hvis man trykker på 'stopknappen' i browseren bliver siden vist med det samme, så selve siden er loadet ned.

Håber var at jeg kunne undgå denne problemstilling ved at ligge scriptet til sidst i koden, men det kan jeg åbenbart ikke (i IE), derfor dette mere principielle spørgsmål.

/Rob
Avatar billede hobbez Nybegynder
14. september 2005 - 13:14 #3
"Men spørgsmålet er om siden vil blive vist, hvis scriptet ikke kan få fat i serveren (eller serveren er lang tid om at svare). Og det er specielt IE der ser ud som om den ikke vil vise siden. Hvis man trykker på 'stopknappen' i browseren bliver siden vist med det samme, så selve siden er loadet ned."

burde selvfølgelig også indeholde:

"Eller hvis scriptet looper eller køre længe/langsomt........."

Altså: Kan et langsomt eller på anden måder 'hæmmet' JavaScript der ligger til sidst på en HTML-side betyde, at siden ikke bliver vist (specielt i IE).

/Rob
Avatar billede roenving Novice
14. september 2005 - 13:19 #4
Så længe scriptet kører (og altså har kontrollen !-), vil siden ikke blive vist ...

-- men jeg ville ikke selv finde på at smide et sådant script direkte ind, jeg ville så heller ikke finde på at lade javascript udføre kontakt ud i verden, for det kan laves meget mere elegant, f.eks. på den måde countere gør !o]

-- men hvis det er nødvendigt, så kunne du jo bare smide koden i en iframe (evt. uden størrelse !-)
Avatar billede olebole Juniormester
14. september 2005 - 14:45 #5
<ole>

Det er svært at svare på, når man ikke ved, hvad det er, du laver - men du må kunne teste på, hvad der sker, når du afvikler scriptet og så handle på det.
Det er altid en skidt idé at basere sin kode på noget, der kan betyde langtidsophold i svedekassen for browseren  :)

/mvh
</bole>
Avatar billede hobbez Nybegynder
14. september 2005 - 17:48 #6
Tak for jeres hjælp.

Jeg har desværre ingen mulighed for at ændre scriptet, men blev forsikret om, at hvis det blev lagt som det sidste før </BODY> så ville det ikke kunne påvirke visningen af siderne.

Men det er altså ikke korrekt?

Og nej, jeg kan ikke vise jer scriptet (og det er også ligemeget - spørgsmålet er af generel karakter).

/Rob
Avatar billede olebole Juniormester
14. september 2005 - 20:03 #7
Det generelle svar lyder: Det kommer anpå scriptet og hvad det gør
Avatar billede hobbez Nybegynder
15. september 2005 - 01:08 #8
Nej, så må det generelle svar vel være: Ja, det er muligt at et JavaScript, selvom det er placeret sidst på en side, forhindrer at siden bliver vist.

Eller?

/Rob
Avatar billede roenving Novice
15. september 2005 - 11:35 #9
Hvis et script, der er hvorsomhelst på siden, udføres umiddelbart uden at afgive kontrollen, vil siden ikke vises før det er færdigt (se også 14/09-2005 13:19:01 !-)
Avatar billede olebole Juniormester
15. september 2005 - 12:54 #10
hobbez >> Ja, det 'må' for den sags skyld være, hvad du har lyst til ... i min verden forholder tingene sig dog, som jeg skrev  :)
Avatar billede hobbez Nybegynder
15. september 2005 - 18:06 #11
olebole: Jeg har bare brug for et svar jeg kan bruge til noget, det kan jeg ikke med "det kommer an på".

roenving: Tak for afklaringen: Læg lige et svar så du kan få point.

/Rob
Avatar billede roenving Novice
15. september 2005 - 18:08 #12
Oki '-)
Avatar billede roenving Novice
15. september 2005 - 18:16 #13
-- og tak for point ;~}
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