Moin!
Das kann es aber in diesem Request nicht herausfinden, weil es ja für die Generierung des HTMLs zuständig ist, nicht für die Generierung des Javascripts.
(seufz) OK, hast mich erwischt! Das Script errät nur *zufällig* den aktuellen Status! (Hmm, das klingt ja noch genialer: Artificial Hokuspokus ;-))
Im Ernst: Ich schrieb ja nicht "innerhalb eines einzigen Requests", sondern "innerhalb eines einzigen *User*-Requests"! Nun mag man darüber streiten, was ein "User-Request" denn überhaupt ist. Ich wollte damit nur verdeutlichen, daß der User einen (üblichen) Request absetzt und *innerhalb* dieses Requests wird die Frage beantwortet - mithilfe von vom Script via ausgegebenem HTML-Code generierten Sub-Requests (deswegen auch Main-Script und Sub-Script).
Nur nochmal zur Klarstellung: Gefordert ist, dass der Browser anzeigt, ob er selbst gerade Javascript aktiviert hat oder nicht, und falls nicht, ob er Javascript grundsätzlich könnte, oder nicht.
Über das Thema "Javascript aktiviert oder nicht" streiten wir uns ja nicht, das geht prima Oldschool mit document.write() und <noscript>.
Und die Frage "könnte er Javascript oder nicht" ist noch offen. Wie willst du das hinkriegen? Die Option "nachgucken, ob er ein eingebundenes externes Javascript vielleicht doch lädt" besteht nicht, weil Browser das nicht tun (von eventuellen Ausnahmen abgesehen), damit ist also keine zuverlässige Ausgabe möglich. Und selbst wenn das für die Ausnahmefälle doch ginge, mußt du ja innerhalb des Servers zwischen zwei zu bearbeitenden Requests kommunizieren können, was aber keinesfalls garantiert werden kann, denn die Zahl paralleler Requests ist browserseitig ebenfalls begrenzt, der Browser kann genausogut alle Requests seriell abarbeiten. Damit bekämst du keinerlei Einflußmöglichkeit mehr auf die HTML-Seite, solltest du einen JS-Abruf feststellen. Das gilt übrigens auch für jegliche Art von Sessionmechanik, die man für diesen Zweck einsetzen könnte.
Also: Die Sub-Requests starten (natürlich) später, sind aber eher fertig als der Initial-Request. Da finde ich die Formulierung "viel später" etwas unpassend. %-)
Nein, das ist keinesfalls garantiert - im Gegenteil sogar sehr unwahrscheinlich. Guck dir einfach mal zur Illustration die Ladezeit-Darstellung in Firebug an.
Zumal das ganze in weniger als einer halben Sekunde erledigt ist. Leidest Du unter Zeit-Dilatation? ;-)
Der absolute Verbrauch an menschlicher Lebenszeit ist für die Betrachtung der Vorgänge nicht relevant.
- Sven Rautenberg
"Love your nation - respect the others."