Ein Freund von mir sagte, dass die Verwendung <div style=""></div>
einer komprimierten CSS-Datei, die wie link href
im Kopfbereich abgelegt wird, eine gewisse Leistungssteigerung bringt. Ist das wahr?
Ein Freund von mir sagte, dass die Verwendung <div style=""></div>
einer komprimierten CSS-Datei, die wie link href
im Kopfbereich abgelegt wird, eine gewisse Leistungssteigerung bringt. Ist das wahr?
Antworten:
Die von Ihrem Freund erwähnte Leistungssteigerung ist wahrscheinlich zu trivial im Vergleich zur Leistungssteigerung (durch andere Faktoren) bei Verwendung einer CSS-Datei.
Mit dem style-Attribut malt der Browser nur die Regel für das jeweilige Element, in diesem Fall das <div>
Element. Dies reduziert die Suchzeit für die CSS-Engine, um herauszufinden, welche Elemente mit dem CSS-Selektor übereinstimmen (z . B. a.hover
oder #someContainer li
).
Wenn Sie das Styling jedoch auf Elementebene setzen, können Sie die CSS-Stilregeln nicht separat zwischenspeichern. Normalerweise ermöglicht das Einfügen von Stilen in CSS-Dateien das Zwischenspeichern, wodurch die Belastung des Servers bei jedem Laden einer Seite verringert wird.
Wenn Sie Stilregeln auf Elementebene einfügen, verlieren Sie auch den Überblick darüber, welche Elemente auf welche Weise gestaltet wurden. Dies kann auch zu einer Leistungssteigerung beim Malen eines bestimmten Elements führen, bei dem Sie mehrere Elemente zusammen neu streichen können. Durch die Verwendung von CSS-Dateien wird das CSS von HTML getrennt, sodass Sie sicherstellen können, dass Ihre Stile korrekt sind und später leichter geändert werden können.
Wenn Sie sich den Vergleich ansehen, werden Sie feststellen, dass die Verwendung einer CSS-Datei viel mehr Vorteile bietet als das Stylen auf Elementebene.
Nicht zu vergessen, wenn Sie eine externe CSS-Stylesheet-Datei haben, kann Ihr Browser die Datei zwischenspeichern, was Ihre Anwendungseffizienz erhöht!
Die Seite wird schneller geladen, wenn Sie Inline-Stile im Vergleich zu Stylesheets verwenden. In einigen Fällen muss schneller.
Wenn Sie ein Stylesheet mit href verwenden, ist eine weitere Anforderung an den Server erforderlich, und das Parsen der Datei nach der Antwort. Bei Inline-Stilen gibt es nichts davon, nur direktes Parsen.
Wenn ein Client über ein langsames Internet verfügt, kann diese einzelne Anforderung sehr langsam sein und die Seite ohne Stil lassen, bis das Stylesheet geliefert wird. Wenn es inline wäre, würde es überhaupt keine Verzögerung geben.
Der einzige Grund, warum wir Stylesheets verwenden, ist die Organisation. Es gibt Zeiten, in denen sie nicht benötigt werden, sodass Inline-Stile oder In-Document-Stylesheets ausreichen.
Die Beantwortung dieser Frage ist nicht einfach, da die Leistung in diesem Fall von vielen Faktoren abhängt (Komplexität der CSS-Selektoren, Dokumentgröße usw.). Wenn wir jedoch einen Einzelfall betrachten, können wir sehen, dass die CSS-Klasse im Allgemeinen schneller ist als der Inline-Stil:
Inline-Stil vs. CSS-Klasse
Nun, es kann, aber der Grund für das verknüpfte oder externe Stylesheet ist, dass es im Browser zwischengespeichert werden kann, insbesondere wenn Sie dasselbe div auf mehreren Seiten für die Site verwenden. Dies bedeutet, dass der Browser das Stylesheet nur einmal laden muss, anstatt den Code jedes Mal neu laden zu müssen, wenn der Browser die Seite neu lädt. Es sorgt auch für saubereren Code, der Änderungen oder das Debuggen erleichtert.
Die Wahrheit ist "Ja"
Es gibt einen großen Unterschied. Besonders wenn Sie die Benutzeroberfläche automatisieren. Versuchen Sie den folgenden Code. Ich benutze IE10 und Notepad, um zu entwickeln. Ich lerne, während ich Tests mache. Dies ist ein verkürzter Versionstest. (Es gibt möglicherweise Fehler, da ich den Code reduziert habe, um Ihre Antwort anzuzeigen.)
Klicken Sie auf das Bild, auf das Sie verweisen, und lesen Sie die Warnmeldungen. TIPP: Speichern Sie diese Datei und speichern Sie sie erneut als Bearbeitung, bevor Sie sie bearbeiten (testen).
Beste Wünsche, Don
<!DOCTYPE html>
<head>
<style>
div.grid
{
width:180px;
height:42px;
border:none;
}
img
{
width:50px;
height:50px;
margin:2px;
float:left;
border: 1px solid red;
}
</style>
<script>
function handleSelect(xId)
{
//
// TESTPOINT
alert("TESTPOINT\r>Grid: " + xId);
//
// GET BORDER COLOR
// NOTE: An empty or blank value when you can see a border means the tag itself does not
// have 'border properties' (style="border: 2px{width} solid{style} green{color}").
// although there can be a border detailed via css local or external or via code (script).
// If the 'border properties' are returned then they were setup at the tag as
// above or the 'border properties' were updated by script code not css code.
// If the 'border properties' are NOT returned then they were setup via css.
// Thus, since everything seems to be heading toward edit on the fly (live) then css is NOT the way to go (learning).
// HINT: Margin property is also not readable if set via css. Most likely all the properties values are the same way.
// Thus, setting the property values of a tag should be set at the tag control.
// (works) cBorder=document.getElementById(xId).style.borderWidth;
// (works) cBorder=document.getElementById(xId).style.borderStyle;
// (works) cBorder=document.getElementById(xId).style.borderColor;
// (works) cBorder=document.getElementById(xId).style.border;
//cBorder=document.getElementById(xId).style.border;
cBorder=document.getElementById(xId).style.margin;
alert("TESTPOINT\r>Grid: " + xId + "\r>Border: " + cBorder);
//
// SELECT IMAGE
document.getElementById(xId).style.margin="1px";
document.getElementById(xId).style.border="2px solid gold";
document.getElementById(xId).innerHTML=xId;
alert("TESTPOINT\r>Grid: " + xId + "\r>Border: " + cBorder + "\r>[set border color gold]");
//
// GET BORDER COLOR
//var cBorder=document.getElementById(xId).style.border-Color; //Error
//var cBorder=document.getElementById(xId).style.border-color; //Error
//var cBorder=document.getElementById(xId).style.borderColor; //Error
//var cBorder=document.getElementById(xId).style.bordercolor; //Undefined
cBorder=document.getElementById(xId).style.border; //Empty
alert("TESTPOINT\r>Grid: " + xId + "\r>Border: " + cBorder + "\r>[set border color gold]" + "\r>Border: " + cBorder);
}
</script>
</head>
<body>
<div class="grid">
<img style="border: 2px solid green" id="R0C0" src="someimage.bmp" onclick="handleSelect(id)">
<img style="border: 2px solid blue" id="R0C1" src="someimage.bmp" onclick="handleSelect(id)">
<img style="border: 2px solid purple" id="R0C2" src="someimage.bmp" onclick="handleSelect(id)">
</div>
<div class="grid">
<img id="R1C0" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R1C1" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R1C2" src="someimage.bmp" onclick="handleSelect(id)">
</div>
<div class="grid">
<img id="R2C0" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R2C1" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R2C2" src="someimage.bmp" onclick="handleSelect(id)">
</div>
</body>
</html>
Meiner Meinung nach gibt es keine feste Antwort.
A inline CSS
wird schneller geladen, wenn die Größe des CSS-Inhalts schneller heruntergeladen wird, als Ihr Server auf eine external CSS file
Anfrage antworten würde (unter Berücksichtigung der DNS-Zeit, der Serverlatenz usw.).
Bei normalem CSS würde ich sie in die Seite einbinden, bei etwas über 15-20 KB würde ich sie wahrscheinlich in eine externe Datei einfügen und sicherstellen, dass sie zwischengespeichert werden kann.
Ich bin mir sicher, dass mir noch viele andere Überlegungen fehlen, aber es gibt keine feste Antwort für Inline oder Extern.
Die Verwendung externer Stylesheets ist definitiv eine bessere Option, da Sie sich so besser an den Stil erinnern können, den Sie auf die Divs angewendet haben. Dies verkürzt die Ladezeit der Seite, da sie umso schneller geladen wird, je geringer der HTML-Code ist.
In einigen Fällen müssen Sie jedoch möglicherweise eine Eigenschaft eines bestimmten Div ändern, dann ist der Inline-Stil die beste Option. Und wirklich, ein oder zwei Inline-Stile ändern nichts an der Zeit, zu der die Seite geladen wird.
Es gibt eine andere Option für das interne Stylesheet, die jedoch nur verwendet wird, wenn Sie eine einzelne Seitenwebsite haben, z. B. wenn Sie eine Vorlage erstellen. Dies liegt daran, dass Sie in jede HTML-Seite CSS schreiben müssen
Ich bevorzuge die Verwendung von Inline-CSS gegenüber externem CSS, bei dem für jedes andere Element oder Bild mehrere kleine CSS-Dateien vorhanden sind. Es macht keinen Sinn, mehrere CSS-Dateien mit jeweils nur 5-10 Codezeilen herunterzuladen. Wenn Ihr Element Eigenschaften wie Hover, Aktiv, Aktiviert usw. enthält, sollten Sie eine externe CSS-Datei verwenden, um Ihren Entwicklungsprozess nicht zu komplizieren.