php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.06.2010, 23:18  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.725
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Falls der Test hier was taugt, beginnt zumindest der Firefox die Seite (und auch die Tabelle) zu rendern, bevor alle Daten da sind.

PHP-Code:
<?php header('Content-Type: application/xhtml+xml; charset=utf-8'); ?>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >

    <head><title></title></head>

    <body style="background: green;">

    <table>
        <tr><th style="background: red;">test</th></tr>

        <?php flush(); sleep(3); ?>

        <tr><td>blub</td></tr>
    <!--</table>-->

    </body>
</html>
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.06.2010, 23:27  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
der geschriebene HTML-Code wird in eine für die weiteren Verarbeitungsschichten lesbare Form gebracht (geparst). Dies wird dann an den Renderer weiter gegeben, der mit Hinzunahme der verfügbaren Styles (welche natürlich ebenfalls vorher geparst wurden) in eine Darstellbare Form gebracht. Der erstellte DOM-Baum wird schließlich der weiteren Verarbeitung durch die Scripting-Engine bereitgestellt.
Nein, DOM ist nicht erst für's Scripting relevant.

Bereits vor dem Rendern wird das DOM aufgebaut - aus dem Quelltext, der hierzu geparst wird.
Die Darstellung erfolgt bereits auf Basis des DOM - dieses enthält die „fertige“ Beziehung der Elemente untereinander, und in das Ermitteln dieser Beziehungen ist die Fehlerkorrektur während des Parsens bereits eingeflossen.

Wenn du ein TBODY-Element zu Gesicht bekommst, das nicht explizit im Quellcode steht, oder auch Whitespace zwischen den Elementen in Form von untersuchbaren Textknoten vorliegen hast - das ist bereits DOM.

Zitat:
Bei diesem Schritt kann ich jedoch nicht genau sagen, wann das passiert, ob vor oder nach dem Eingriff der Rendering-Engine, ich würde sagen danach.
Rendering ist im HTML/CSS-Umfeld die Visualisierung des DOM.
Dass das DOM anschliessend noch mal verändert wird, ist natürlich nicht ausgeschlossen (innerHTML, appendChild, etc.); dann muss die Rendering Engine erneut ran, erneut das zu diesem Zeitpunkt aktuelle DOM visualisieren, unter Zuhilfenahme aller vorliegenden CSS-Regeln etc.


Recht aufschlussreich bzgl. der einzelnen Vorgänge und (zeitlichen) Abläufe vom Quellcode zur letztendlichen Darstellung auf dem Monitor (oder ggf. anderem Ausgabemedium) ist m.E. der Artikel Rendering: repaint, reflow/relayout, restyle / Stoyan's phpied.com
Die dort vermittelten Informationen sind auch hinsichtlich Performance interessant, wenn wie angesprochen das DOM nachträglich und ggf. wiederholt manipuliert wird.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 22.06.2010, 00:23  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ich sehe, wir sind uns einig.

Zitat:
Bereits vor dem Rendern wird das DOM aufgebaut
Jap. habe ich auch nicht dementiert. Da wäre ja auch sonst nichts zu rendern. Ich habe nur darüber spekuliert, ab wann das DOM der Scripting-Engine zur Verfügung steht. Und dass DOM etwas anderes ist als Browserscripting, ist wohl uns beiden klar.
Zitat:
Wenn du ein TBODY-Element zu Gesicht bekommst, das nicht explizit im Quellcode steht, oder auch Whitespace zwischen den Elementen in Form von untersuchbaren Textknoten vorliegen hast - das ist bereits DOM.
Auch hier habe ich nichts anderes behauptet.
Zitat:
Rendering ist im HTML/CSS-Umfeld die Visualisierung des DOM.
Ich weiß.

Zitat:
Recht aufschlussreich bzgl. der einzelnen Vorgänge und (zeitlichen) Abläufe vom Quellcode zur letztendlichen Darstellung auf dem Monitor (oder ggf. anderem Ausgabemedium) ist m.E. der Artikel Rendering: repaint, reflow/relayout, restyle / Stoyan's phpied.com
Der Artikel sieht interessant aus. Werde ich mir morgen einmal zu Gemüte führen. Vielen Dank.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 22.06.2010, 00:43  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
Ich habe nur darüber spekuliert, ab wann das DOM der Scripting-Engine zur Verfügung steht.
Generell gilt hier beim Verarbeiten von HTML über den Tag-Soup-Parser: Innerhalb von SCRIPT-Elementen hast du auf alles Zugriff, was „vor“ diesen im Quelltext auftauchte bzw. begonnen wurde.

Bspw. das Setzen eines classNames für BODY, direkt hinter dem Starttag von BODY, ist gängige Praxis, um mit der Anwendung von Stylesheet-Regeln möglichst früh im Rendering-Vorgang darauf reagieren zu können, ob JavaScript aktiviert ist oder nicht (Verfahren dürfte wohl bekannt sein).

Über die ID oder auch sonstige Zugriffsmethoden hast du ebenfalls bereits auf alles Zugriff, was davor kam*. Methoden wie getElementsByTagName liefern zu einem solchen Zeitpunkt auch alle die Elemente (und nur die), die bereits vor dem jeweiligen SCRIPT-Element auftauchten.

Daraus resultiert auch die hinsichtlich Seitenperformance und Ladeverhalten aktuell geltende (Pauschal-)Empfehlung (Google Page Speed, YSlow, weitere), Scripte möglichst nicht im HEAD, sondern direkt vor dem Ende von BODY zu platzieren. Damit blockieren sie einerseits nicht das Laden weiterer externer Ressourcen (bspw. CSS), und haben andererseits auch sofort Zugriff auf das DOM, ohne bspw. wie bei onload auch auf das Fertigladen sämtlicher Bilder warten zu müssen. In dem Zeitraum kann man ja mit DOM-Manipulationen, die sich optisch auswirken, schon mal beginnen - dann braucht nichts „herumzuhüpfen“, wenn die Bilder erst mal fertig geladen sind.
(Wenn im Script auch Zugriff auf die sich aus CSS ergebenden Maße, Position etc. von Elementen von Nöten ist, dann empfiehlt sich allerdings das Warten auf documentReady; wie ich letztens erfahren habe, feuern das so gut wie alle aktuellen Browser wohl erst dann, wenn auch das CSS geladen und angewendet wurde - Ausnahme [noch]: Opera.)


Das alles gilt wohlgemerkt für HTML bzw. die Anwendung eines Tag-Soup-Parsers - bei XML m.W. nicht mehr.


* Vorsicht ist hier im IE geboten: Wenn aus einem SCRIPT-Element heraus das Element, das dieses SCRIPT enthält, manipuliert werden soll, was dessen „Sub-DOM“, also die in ihm liegenden Elemente betrifft (bspw. per innerHTML="..."), quitiert der IE das oft mit dem schwer nachvollziehbaren Fehler „Diese Seite kann nicht angezeigt werden.“
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 22.06.2010, 07:52  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Zitat:
Daraus resultiert auch die hinsichtlich Seitenperformance und Ladeverhalten aktuell geltende (Pauschal-)Empfehlung (Google Page Speed, YSlow, weitere), Scripte möglichst nicht im HEAD, sondern direkt vor dem Ende von BODY zu platzieren.
Das ist mir bewusst. Allerdings bezieht sich dies genau wie bei Bildern auch auf externe inhalte, die a) erst vom Server geladen und dann b) verarbeitet werden müssen. Ich bezog mich jetzt hier direkt auf das DOM, ob dieses auch nach und nach zur Verfügung gestellt wird oder alles auf einmal. Aber wenn ich darüber nachdenke, so komme ich zu dem Schluss, dass auch dieses (bei HTML, nicht bei XML) nach und nach bereitgestellt wird (ich kann schließlich schon auf frühere, aber vor DOMDocumentReady nicht auf spätere Elemente zugreifen.)
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML5 + CSS3 schon jetzt ? drsoong Off-Topic Diskussionen 20 17.06.2010 08:17
PHP Schreibweisen? Curcio PHP Tipps 2009 8 13.09.2009 00:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
pagespeed flush(), schreibweise miterledigt, http://www.php.de/html-usability-und-barrierefreiheit/69057-erledigt-html5-schreibweisen-3.html, \<restyle>\ html5

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum