|
| Har rækkefølgen i <head> betydning? Fra : Preben Nielsen |
Dato : 01-06-11 03:29 |
|
Jeg ønsker at oprette en included php-fil for den del af <head> som er
fælles indhold for alle sider, dvs. doctype, char-set, henvisning til
en ekstern javascript-fil og evt. en global css-fil.
Den resterende del af <head> indholdet, der varierer fra side til
side, skal fremgå af de enkelte sider, dvs. <title> og eksterne css-
filer med koder, der ikke gælder globalt.
Arrangeret på denne måde vil rækkefølgen i head blive:
doctype
charset
henvisning til eksern javascript-fil
global css-fil
<title>
individuelle css-filer
Har rækkefølgen i <head> betydning? Eller loades de forskellige ting i
en bestemt rækkefølge uanset placering? Hvis rækkefølgen har
betydning, går jeg ud fra, at det er hensigtsmæssigt at alle css-filer
står før henvisningen til den eksterne javascript-fil, hvilket vil
betyde at henvisningen til script-fil ikke skal med i nævnte
inkluderede fil, sådan at den kan placeres til sidst.
Det skal dog siges at javascriptet i den eksterne fil aktuelt kun
bruges, når der trykkes på et link, så jeg ved ikke om scriptfilen
overhovedet loades, før scriptet aktiveres. Hvis ikke, kan
henvisningen til scriptfilen jo sagtens stå før css.
Men der vil muligvis senere blive tilføjet et script mere, et script,
som vil være aktivt ved load af siden. Så unden den omstændighed er
spørgsmålet, om det gør noget, at henvisningen til ekstern javascript-
fil befinder sig før henvisningen til eksterne css-filer?
/Preben
| |
Bertel Lund Hansen (01-06-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 01-06-11 10:49 |
|
Preben Nielsen skrev:
> Jeg ønsker at oprette en included php-fil for den del af <head> som er
> fælles indhold for alle sider, dvs. doctype, char-set, henvisning til
> en ekstern javascript-fil og evt. en global css-fil.
> Den resterende del af <head> indholdet, der varierer fra side til
> side, skal fremgå af de enkelte sider, dvs. <title> og eksterne css-
> filer med koder, der ikke gælder globalt.
Den slags plejer jeg at lave med en variabel, f.eks. $title. Så
kan jeg bestemme dens placering i HTML'en uafhængigt af andre
ting.
Undersiden:
$title='Min helt egen hjemmeside';
Masterside:
Echo "<title>$title</title>\n";
Andre variable kan klares på samme måde.
Jeg ved ikke om rækkefølgen har betydning (ud over visse ting),
men jeg vil have ens rækkefølge i alle mine HTML-filer af hensyn
til at de skal læses af mennesker - bl.a. mig selv mens jeg
arbejder med dem.
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Birger Sørensen (01-06-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 01-06-11 11:05 |
|
Preben Nielsen har bragt dette til verden:
> Jeg ønsker at oprette en included php-fil for den del af <head> som er
> fælles indhold for alle sider, dvs. doctype, char-set, henvisning til
> en ekstern javascript-fil og evt. en global css-fil.
> Den resterende del af <head> indholdet, der varierer fra side til
> side, skal fremgå af de enkelte sider, dvs. <title> og eksterne css-
> filer med koder, der ikke gælder globalt.
>
> Arrangeret på denne måde vil rækkefølgen i head blive:
> doctype
> charset
> henvisning til eksern javascript-fil
> global css-fil
> <title>
> individuelle css-filer
>
> Har rækkefølgen i <head> betydning? Eller loades de forskellige ting i
> en bestemt rækkefølge uanset placering? Hvis rækkefølgen har
> betydning, går jeg ud fra, at det er hensigtsmæssigt at alle css-filer
> står før henvisningen til den eksterne javascript-fil, hvilket vil
> betyde at henvisningen til script-fil ikke skal med i nævnte
> inkluderede fil, sådan at den kan placeres til sidst.
>
> Det skal dog siges at javascriptet i den eksterne fil aktuelt kun
> bruges, når der trykkes på et link, så jeg ved ikke om scriptfilen
> overhovedet loades, før scriptet aktiveres. Hvis ikke, kan
> henvisningen til scriptfilen jo sagtens stå før css.
> Men der vil muligvis senere blive tilføjet et script mere, et script,
> som vil være aktivt ved load af siden. Så unden den omstændighed er
> spørgsmålet, om det gør noget, at henvisningen til ekstern javascript-
> fil befinder sig før henvisningen til eksterne css-filer?
>
> /Preben
Jeg har det som Bertel.
Hvis rækkefølgen har betydning, er den mnimal.
Og det er vigtigt, at kilden er læsbar. og jeg bruger også variable til
både css og js, hvis de enkelte sider, kræver unike løsninger, som ikke
skal bruges af andre sider.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Martin (01-06-2011)
| Kommentar Fra : Martin |
Dato : 01-06-11 11:17 |
|
On 01-06-2011 11:28, Preben Nielsen wrote:
> Arrangeret på denne måde vil rækkefølgen i head blive:
> doctype
> charset
> henvisning til eksern javascript-fil
> global css-fil
> <title>
> individuelle css-filer
Det eneste jeg har læst om (aldrig selv set et problem ved det) er at
charset skal komme før <title> hvis man bruger sjove bogstaver i <title>.
Ellers så er der egentlig ikke noget, andet end javascript skal komme
efter hinanden i den rigtige rækkefølge.
> Det skal dog siges at javascriptet i den eksterne fil aktuelt kun
> bruges, når der trykkes på et link, så jeg ved ikke om scriptfilen
> overhovedet loades, før scriptet aktiveres. Hvis ikke, kan
> henvisningen til scriptfilen jo sagtens stå før css.
> Men der vil muligvis senere blive tilføjet et script mere, et script,
> som vil være aktivt ved load af siden. Så unden den omstændighed er
> spørgsmålet, om det gør noget, at henvisningen til ekstern javascript-
> fil befinder sig før henvisningen til eksterne css-filer?
End anden ting, som flere og flere anbefaler er at små stumper
javascript faktisk er inline, så det ikke koster et request at hente
javascripten. - Hvor mange linjer vi snakker om før det kan betale sig
melder historien dog ikke noget om, det gælder vel egentlig også CSS,
som dog i næsten alle tilfælde vil være en del bytes i.
| |
Preben Nielsen (01-06-2011)
| Kommentar Fra : Preben Nielsen |
Dato : 01-06-11 04:24 |
|
Bertel og Birger, jeg forstår jeres svar, som at I går op i at
kildekoden er "køn". Er det ikke meget at gøre ud af det for andres
skyld? Når jeg arbejder, læser jeg i min tekstetitor, ikke i
kildekoden til den php-displayede side. Og i editoren er det jo let og
overskueligt, at de ting, der har med den enkelte side at gøre, står i
dennes kode, mens det der er fælles for alle sider ikke gør.
Jeg forstår ikke det med underside og masterside. Aktuelt sidder jeg
jo med én side (for hver side der er). Min manglende forståelse
skyldes måske at jeg ikke kan skrive php.
/Preben
| |
Bertel Lund Hansen (01-06-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 01-06-11 11:49 |
|
Preben Nielsen skrev:
> Bertel og Birger, jeg forstår jeres svar, som at I går op i at
> kildekoden er "køn". Er det ikke meget at gøre ud af det for andres
> skyld? Når jeg arbejder, læser jeg i min tekstetitor, ikke i
> kildekoden til den php-displayede side. Og i editoren er det jo let og
> overskueligt, at de ting, der har med den enkelte side at gøre, står i
> dennes kode, mens det der er fælles for alle sider ikke gør.
Ja, men mens jeg er ved at sørge for at HTML'en opfører sig
ordentligt, er jeg nødt til at afvikle PHP-koden og se på
HTML-outputtet, og det skal være letlæseligt.
Og nej, det er aldrig for meget at tage rimelige hensyn til
andre.
> Jeg forstår ikke det med underside og masterside.
Jeg fik også skrevet det lidt modsat af hvad du skal bruge. Selv
laver jeg en masterside som inkluderer indholdet til
undersiderne. Du vil lave en lille include-fil som hentes ind af
undersiderne. Men det ændrer ikke på princippet:
$title="Min fænomenale side";
include common_html.inc.php;
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Martin (01-06-2011)
| Kommentar Fra : Martin |
Dato : 01-06-11 11:52 |
|
On 01-06-2011 12:24, Preben Nielsen wrote:
> Bertel og Birger, jeg forstår jeres svar, som at I går op i at
> kildekoden er "køn". Er det ikke meget at gøre ud af det for andres
> skyld? Når jeg arbejder, læser jeg i min tekstetitor, ikke i
> kildekoden til den php-displayede side. Og i editoren er det jo let og
> overskueligt, at de ting, der har med den enkelte side at gøre, står i
> dennes kode, mens det der er fælles for alle sider ikke gør.
Jeg er egentlig meget enig - mine sider ser også frygtelig ud (og
ulæselig) i browserens kildekode (selvfølgelig overholdes de gængse
standarder stadigvæk).
Desuden så jo mere kompakt en HTML kode er jo mindre vil den fylde.
Dog så bliver alt min HTML kode lavet af et PHP template system (PHP
Twig) hvor jeg så har en footer, head og en header template.
footer siger sig selv,
head er alt det før <body> hvor <header> er alt det der skal være
standard på alle sider (de fleste sider, kan selvfølgelig lave en masse
i template alligevel)
| |
Bertel Lund Hansen (01-06-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 01-06-11 12:03 |
|
Martin skrev:
> Jeg er egentlig meget enig - mine sider ser også frygtelig ud (og
> ulæselig) i browserens kildekode (selvfølgelig overholdes de gængse
> standarder stadigvæk).
Det er kun et spørgsmål om vane at ens HTML-kode ser pæn ud selv
om den genereres automatisk. Og det sparer tid under udviklingen.
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Martin (01-06-2011)
| Kommentar Fra : Martin |
Dato : 01-06-11 12:20 |
|
On 01-06-2011 13:02, Bertel Lund Hansen wrote:
> Martin skrev:
>
>> Jeg er egentlig meget enig - mine sider ser også frygtelig ud (og
>> ulæselig) i browserens kildekode (selvfølgelig overholdes de gængse
>> standarder stadigvæk).
>
> Det er kun et spørgsmål om vane at ens HTML-kode ser pæn ud selv
> om den genereres automatisk. Og det sparer tid under udviklingen.
Tjaa tjoo, nu er jeg begyndt at bruge mod_pagespeed på min server, så nu
bliver alt HTML/CSS/javascript minificeret, helt automatisk, så CSS er
nu 1 kæmpe lang linje istedet for X linjers kode, i HTML bliver
whitespaces og tabs fjernet helt.
Dog mener jeg nu ikke det sparer tid, uanset hvor køn HTML koden er, så
har jeg det personligt med at bruge firebug alligevel også lige trykke
på det gale sted og så er HTML'en lige der hvor den skal være.
Selvfølgelig hvis HTML'en er noget man skal videregive til andre / bruge
til CV osv. så er det selvfølgelig noget helt andet, men ting ud på
nettet der behøves det ikke være kønt imo.
| |
Preben Nielsen (01-06-2011)
| Kommentar Fra : Preben Nielsen |
Dato : 01-06-11 06:22 |
|
I mit aktuelle tilfælde vil den eneste forskel - i "værste" fald være
om der i kildekoden står:
<script type="text/javascript" src="javascript.js"></script>
<link href="css/global.css" rel="stylesheet" type="text/css"
media="screen" />
<title>Min titel</title>
<link href="css/individuelt.css" rel="stylesheet" type="text/css"
media="screen" />
eller:
<title>Min titel</title>
<link href="css/global.css" rel="stylesheet" type="text/css"
media="screen" />
<link href="css/individuelt.css" rel="stylesheet" type="text/css"
media="screen" />
<script type="text/javascript" src="javascript.js"></script>
Hvis det i øvrigt ikke gør nogen forskel på hvor optimalt siden kører,
så forekommer det mig umiddelbart at være lidt rigeligt at skulle til
at sætte mig ind i variable og evt. andet (uden at jeg dog ved hvor
omfattende det er), for at displaye kildekode i den smukkeste
rækkefølge, da jeg har et kæmpearbejde med resten af
renoveringsarbejdet. Og jeg forstår i øvrigt ikke
$title="Min f nomenale side";
include common_html.inc.php;
Men hvis det er enkelt, ser jeg da gerne, hvordan det kan gøres, men
det vil så kræve en meget præcis instruktion for en ikke-php-kyndig.
Alt andet lige vil jeg gerne have nogenlunde pæn og læselig kode, og
den skal validere, men jeg producerer først og fremmest med det formål
at sitets indhold skal være i orden og fremstå ordentligt, at det
kører så optimalt som muligt, og ikke for at skabe kildekode-læsnings-
nydelse.
/Preben
| |
Martin (01-06-2011)
| Kommentar Fra : Martin |
Dato : 01-06-11 14:30 |
|
On 01-06-2011 14:22, Preben Nielsen wrote:
> I mit aktuelle tilfælde vil den eneste forskel - i "værste" fald være
> om der i kildekoden står:
>
> <script type="text/javascript" src="javascript.js"></script>
> <link href="css/global.css" rel="stylesheet" type="text/css"
> media="screen" />
> <title>Min titel</title>
> <link href="css/individuelt.css" rel="stylesheet" type="text/css"
> media="screen" />
>
> eller:
>
> <title>Min titel</title>
> <link href="css/global.css" rel="stylesheet" type="text/css"
> media="screen" />
> <link href="css/individuelt.css" rel="stylesheet" type="text/css"
> media="screen" />
> <script type="text/javascript" src="javascript.js"></script>
Med disse, så mener jeg ikke du skal tænke videre over det.
Kun hvis global.css har noget som overskriver individuelt.css (og ikke
har !important)
>
> Hvis det i øvrigt ikke gør nogen forskel på hvor optimalt siden kører,
> så forekommer det mig umiddelbart at være lidt rigeligt at skulle til
> at sætte mig ind i variable og evt. andet (uden at jeg dog ved hvor
> omfattende det er), for at displaye kildekode i den smukkeste
> rækkefølge, da jeg har et kæmpearbejde med resten af
> renoveringsarbejdet. Og jeg forstår i øvrigt ikke
> $title="Min f nomenale side";
> include common_html.inc.php;
> Men hvis det er enkelt, ser jeg da gerne, hvordan det kan gøres, men
> det vil så kræve en meget præcis instruktion for en ikke-php-kyndig.
common_html.inc.php
Kunne se således ud
--
<doctype...>
<html...>
<head>
<charset...>
<title><?php echo $title; ?></title>
<!-- css/javascript og alt det andet her -->
</head>
--
Så i din
artikel.php fx.
Skriver man bare
--
<?php
$title = 'Artikel';
include 'common_html.inc.php';
?>
<body>
<p>content content content</p>
</body>
</html>
--
Det er sådan set alt hvad der skal til med sådan en include.
Det samme med menu, footer og diverse andre ting.
menu.inc.php
--
<ul>
<li....>
<li....>
</ul>
--
artkel.php med menu
--
<?php
$title = 'Artikel';
include 'common_html.inc.php';
?>
<body>
<p>content content content</p>
<!-- her kommer menuen -->
<?php
include 'menu.inc.php';
?>
<!-- ikke mere på menuen -->
</body>
</html>
--
>
> Alt andet lige vil jeg gerne have nogenlunde pæn og læselig kode, og
> den skal validere, men jeg producerer først og fremmest med det formål
> at sitets indhold skal være i orden og fremstå ordentligt, at det
> kører så optimalt som muligt, og ikke for at skabe kildekode-læsnings-
> nydelse.
| |
Preben Nielsen (01-06-2011)
| Kommentar Fra : Preben Nielsen |
Dato : 01-06-11 10:18 |
|
On 1 Jun., 15:30, Martin wrote:
Princippet med at include er jeg med på, det var det med variabler jeg
ikke har prøvet før.
> common_html.inc.php
> Kunne se s ledes ud
>
> --
> <doctype...>
> <html...>
> <head>
> <charset...>
> <title><?php echo $title; ?></title>
> <!-- css/javascript og alt det andet her -->
> </head>
Det kunne jeg godt få til at virke. Og det tilfredsstiller da min
glæde ved lidt bedre kildekode trods alt Hvorved <title> kom over
javascript og css. Hvis jeg igen skal tænke i "kodeskønhed", så er
javascript nødt til at komme før css, idet det kun er den globale css,
der kan være med i din common_html.inc.php, og den må så stå nederst
for i kildekoden ikke at blive adskilt fra individuel css på den givne
side. Men som jeg forstår på de andre indlæg, skulle det altså ikke
gøre nogen praktisk forskel, der er værd at tale om.Slut-head-tagget
kommer således til forskel fra din kode også udenfor
common_html.inc.php og er på selve siden.
Tak for indspark og inspiration. Når det ikke er mere tidskrævende end
dette var, synes jeg det er ok at forskønne kode, samtidig med at jeg
holder fast i hovedsigtet: at det er selve sitet og ikke læsning af
dets kode, der skal fornøje
/Preben
| |
|
|