Benötigt jede HTML -Seite mit docType eine Internetverbindung, um die Seite ordnungsgemäß zu rendern?

StackOverflow https://stackoverflow.com/questions/1986819

  •  22-09-2019
  •  | 
  •  

Frage

Viele docType verwenden einen URL -Link

so was

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Und diese DTD -Datei befindet sich auf Live -URL http://www.w3.org/tr/html4/strict.dtd

Wie nutzen diese Online -Live -DTD und wie jede Seite (die diese docType verwenden) nach diesem docType ordnungsgemäß gerendert wird, ohne Zugriff auf diese URL zu haben (ich meine, wenn der Internetzugang nicht verfügbar ist?)

aktualisieren : Ich habe diese Informationen von Wikipedia gefunden http://en.wikipedia.org/wiki/system_identifier

In HTML und XML ist eine Systemkennung eine fragmentlose URI -Referenz. Es tritt typischerweise in einer Dokumenttyp -Deklaration auf. In diesem Zusammenhang soll ein Dokumenttyp identifiziert werden, der ausschließlich in einer Anwendung verwendet wird, während eine öffentliche Kennung einen Dokumenttyp identifizieren soll, der möglicherweise mehr als eine Anwendung umfasst.

Im folgenden Beispiel ist der Systemkennung der in Anführungszeichen enthaltene Text:

Update 2: Ist es nur für Validatoren verwendet? Wie eine Software wie Dreamweaver bietet eine Offline -Validierung?

Update 3: Ich habe diese Informationen von der W3C -Site gefunden http://www.w3.org/qa/tips/doctype

Warum einen docType angeben? Da es definiert, welche Version von (x) HTML Ihr Dokument tatsächlich verwendet (Version für welchen Browser oder Validator?), und dies ist eine kritische Information, die einige Tools benötigen (Welche Tools? Irgendwelche anderen Tools, dann Validator?) Verarbeitung des Dokuments.

Wenn Sie beispielsweise das DOCType Ihres Dokuments angeben, können Sie Tools wie den Markup -Validator verwenden, um die Syntax Ihres (x) HTML zu überprüfen. Solche Tools können nicht funktionieren, wenn sie nicht wissen, welche Art von Dokument Sie verwenden.

Das Wichtigste ist jedoch, dass bei den meisten Familien von Browsern eine DocType -Erklärung viel unnötig erraten wird und somit einen "Standard" -Rendernmodus auslöst.

War es hilfreich?

Lösung

Nein, keine Browser holen tatsächlich den DocType ab oder validieren. Sehen DTDs funktionieren nicht im Web Ein gutes Argument dafür, warum das Abrufen und Validieren von DTDs eine schlechte Idee ist.

Der DocType ist theoretisch dort, um zu sagen, welche Version des Standards das Dokument verwendet. Die Browser verwenden diese Informationen im Allgemeinen nicht als zu Wechseln Sie zwischen Macken und Standardmodus. Alle modernen Browser akzeptieren das einfachste mögliche DocType ohne URL- oder Versionsinformationen. <!DOCTYPE html>, für diesen Zweck; aus diesem Grund, HTML5 hat dies als empfohlenes docType übernommen.

Validatoren verwenden diese Informationen manchmal, um mitzuteilen, gegen was DTD validieren soll, aber DTDs, die in das Dokument eingebettet sind, sind jedoch keine sehr gute Möglichkeit, Validierungsinformationen anzugeben. Das Problem bei der Validierung gegen einen DTD, auf das in einem Dokument verwiesen wird, besteht darin, dass der Verbraucher dieses Dokuments nicht wirklich so sehr wichtig ist, ob das Dokument selbstkonsistent ist, aber ob es einem Schema folgt, das der Verbraucher weiß, wie er zuverlässig interpretiert. Stattdessen ist es im Allgemeinen besser, gegen ein externes Schema in einer leistungsfähigeren Schemasprache wie zu bestätigen Entspannen Sie Ng.

Wenn Validatoren diese Informationen verwenden, verwenden sie den URI häufig als Kennung nur nicht als Locator. Das bedeutet, dass der Validator bereits alle gemeinsamen HTML -DocTypes kennt und dieses Wissen zur Validierung verwendet, anstatt von den genannten URI herunterzuladen. Dies dient zum Teil, um das Problem zu vermeiden, die DTD jedes Mal herunterzuladen, und auch, da eine DTD nicht mehr genügend Informationen angibt, um sehr gute Validierung und Fehlermeldungen zu liefern Oder eine leistungsfähigere Schemasprache. Weitere Informationen finden Sie unter Die These von Henri Sivonen Bei seiner Umsetzung der validator.nu HTML5 -Konformitätsprüfer.

Einige Validatoren können auch DTDs herunterladen und dann durchführen, daher müssten sie einmal online sein, um es herunterzuladen, werden jedoch später aus der zwischengespeicherten Version arbeiten.

Andere Tipps

Der URI ist da, um den Dokumenttyp eindeutig zu identifizieren - er ist nicht zum Abrufen gedacht, und kein Browser (oder ein anderes Software) sollte auf ein Dokument beruhen, das an dieser Webadresse vorhanden ist.

Ich habe mich immer darüber gefragt. Wenn Sie jedoch Ihren eigenen HTTP -Server haben, ist es ziemlich einfach zu beweisen, dass es keine Rolle spielt. Schlucke das Kabel einfach zur Außenwelt und prüfe, ob Sie die Seiten auf Ihrem Server noch öffnen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top