Malte: Klappmenü mit PHP?

Hallo!
Ich wollte für meine Seite ein Klappmenü erstellen, ähnlich wie auf http://www.dhtmlcentral.com

Da nicht alle Browser DHTML so unterstützen, wie man es gerne hätte, nutzen die meisten dieser Skripte ja Javascript-Abfragen. Diese JS-Dateien sind aber bis zu 40 kb groß. Das ist mir wegen der Ladezeit zu viel.

Nun habe ich mir gedacht, dass ein PHP-Skript dieses Browsersniffing übernehmen könnte, und "browsergerecht" den Code ausgibt. Dann würde man nur das PHP-Skript includen und müsste nicht immer so eine große JS-Datei mitladen. Allerdings muss das PHP-Skript ja erst auf dem Server ausgeführt werden, und ich habe keine Ahnung, ob das lange dauert.

Deshalb meine 2 Fragen:
Ist es ladezeittechnisch gesehen (verzeiht bitte diesen Ausdruck  ) günstiger,

  • eine Lösung zu wählen, bei der ein PHP-Skript das Browsersniffing übernimmt und je nach Browser einen anderen Klappmenücode ausgibt
  • oder eine rein DHTML-Lösung, bei der eine JS-Datei eingebunden wird?

Es würde mich auch freuen, wenn ihr mir ein Skript nennen könntet, das zwar alle gängigen Browser unterstützt (Netscape 4.7 und IE4 müssen nicht mehr unterstützt werden), aber kein 30kb JS hintendran hat. Ich habe zwar schon länger gesucht, aber noch nichts befriedigendes gefunden.

Vielen Dank

Malte

  1. Hi,

    Da nicht alle Browser DHTML so unterstützen, wie man es gerne hätte, nutzen die meisten dieser Skripte ja Javascript-Abfragen.

    und da man in _jedem_ Browser JavaScript abschalten kann, sind diese Scripts insgesamt ziemlich sinnfrei.

    Diese JS-Dateien sind aber bis zu 40 kb groß.

    Zur Abfrage des Browsers?! Nun, da der verwendete Browser absolut(!) irrelevant ist, streiche diese Dateien einfach, und ersetze sie durch eine simple, einzeilige Abfrage des verwendeten Objektmodells.

    Nun habe ich mir gedacht, dass ein PHP-Skript dieses Browsersniffing übernehmen könnte,

    Nein, man kann weder server- noch clientseitig den verwendeten Browser ermitteln. Und wenn man es könnte, wäre es uninteressant. Für _alle_ Fälle.

    und "browsergerecht" den Code ausgibt.

    Also beispielsweise den JavaScript-freien Code für (in dem Moment) nicht-JavaScript-fähige Browser. Dann nimm doch einfach _immer_ diesen Code.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      und da man in _jedem_ Browser JavaScript abschalten kann, sind diese Scripts insgesamt ziemlich sinnfrei.

      solche nicht beweisbare Aussagen find ich nur verwirrend wenn nicht schlichtweg Falsch.

      siehe [http://www.ayom.com/topic-216.html]

      wenn weniger als 10% der Anwender Javascript ausschalten, ist das kein Grund  es nicht zu verwenden

      Gruss

      maulwurf

      Ehren Mitglied der Verein gegen

      "Javascript warnt: Die Verwendung von Javascript begünstigt Gehirnerweichung" e.V.

      1. Hi,

        und da man in _jedem_ Browser JavaScript abschalten kann, sind diese Scripts insgesamt ziemlich sinnfrei.
        solche nicht beweisbare Aussagen find ich nur verwirrend wenn nicht schlichtweg Falsch.

        Du meinst es könnte sein, dass ein Browser existiert, bei dem man JavaScript _nicht_ abschalten kann? Naja, schon, aber der kann es dann vermutlich überhaupt nicht.

        wenn weniger als 10% der Anwender Javascript ausschalten,

        Ich frage mich immer, woher solche absoluten Aussagen bei schlicht und ergreifend unmessbaren Werten herkommen.

        ist das kein Grund  es nicht zu verwenden

        Wenn etwas dermaßen Wichtiges wie die Navigation bei nur einem einzigen Menschen nicht funktioniert, ist das ein allumfassendes Versagen des Entwicklers. Gegebenenfalls ist es sogar juristisch relevant, sprich: kann Grund zu einer Verurteilung sein. Ich kann daher Deine "völlig egal"-Einstellung nicht gutheißen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Wenn etwas dermaßen Wichtiges wie die Navigation bei nur einem einzigen Menschen nicht funktioniert, ist das ein allumfassendes Versagen des Entwicklers. »»
          Cheatah

          oder eine bewusste Entscheidung (vorausgesetzt man gibt die entsprechende Hinweise wie man Javascript einschaltet)

          übrigens: mir ist es überhaupt nicht egal. Es ist nur das die Tatsache das bestimmte Anwender Javascript ausschalten IMHO keineswegs rechfertig die geistige "allgemeine Verbot" von Javascript

          maulwurf

          1. hi,

            Wenn etwas dermaßen Wichtiges wie die Navigation bei nur einem einzigen Menschen nicht funktioniert, ist das ein allumfassendes Versagen des Entwicklers.

            oder eine bewusste Entscheidung (vorausgesetzt man gibt die entsprechende Hinweise wie man Javascript einschaltet)

            die sind für anwender, die javascript gar nicht aktivieren _dürfen_, nicht von belang.

            Es ist nur das die Tatsache das bestimmte Anwender Javascript ausschalten IMHO keineswegs rechfertig die geistige "allgemeine Verbot" von Javascript

            niemand hat javascript "verboten".

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. Hallo!
              Bitte nicht streiten! ;-)

              Fühlt euch bitte nicht persönlich dadurch angegriffen, aber ich werde denoch auf mein DHTML-Menü nicht verzichten, da ich der Meinung bin, dass man nicht wegen einer sehr kleinen Minderheit auf ein Gestaltungselement verzichten sollte, das die Übersicht und Navigation erheblich vereinfacht. In der anvisierten Besuchergruppe meiner Seite dürfte die Anzahl der JavaScript-Deaktivierer deutlich unter 1% liegen. Und natürlich werde ich die Navigation so gestalten, dass man auch ohne JavaScript auf alle Bereiche zugreifen kann- nur dann eben nicht direkt von der höchsten Ebene.

              Aber zurück zum eigentlichen Thema.

              Ist es ladezeittechnisch gesehen (verzeiht bitte diesen Ausdruck  ) günstiger,

              • eine Lösung zu wählen, bei der ein PHP-Skript das Browsersniffing übernimmt und je nach Browser einen anderen Klappmenücode ausgibt
              • oder eine rein DHTML-Lösung, bei der eine JS-Datei eingebunden wird?

              Cheatah, kann man sicher nicht über PHP rausfinden, ob DHTML ausreichend unterstützt wird? :?

              1. Hi Malte,

                [...] so gestalten, dass man auch ohne JavaScript auf alle Bereiche zugreifen kann- nur dann eben nicht direkt von der höchsten Ebene.

                Naja.  :-|
                Wenn du jetzt geschrieben hättest "... nur eben nicht mit allen optischen Gimmicks", dann wäre das völlig in Ordnung.

                Cheatah, kann man sicher nicht über PHP rausfinden, ob DHTML ausreichend unterstützt wird? :?

                Nein, wie denn auch?
                Überleg doch mal selber: Das ist doch so, als wolltest du beim Schreiben eines Briefes schon auf die Lichtverhältnisse eingehen, die den Empfänger beim Lesen des Briefes erwarten. Da kannst du allenfalls Vermutungen anstellen, und die können total danebenliegen.

                So long,

                Martin

                1. Hallo Martin,

                  Überleg doch mal selber: Das ist doch so, als wolltest du beim Schreiben eines Briefes schon auf die Lichtverhältnisse eingehen, die den Empfänger beim Lesen des Briefes erwarten.

                  da fand ich das hier noch ein klein wenig pointierter in der Metaphorik ,-)

                  Gruß aus Köln-Ehrenfeld,

                  Elya

                  1. n'Abend,

                    Das ist doch so, als wolltest du beim Schreiben eines Briefes schon auf die Lichtverhältnisse eingehen, die den Empfänger beim Lesen des Briefes erwarten.

                    da fand ich das hier noch ein klein wenig pointierter in der Metaphorik ,-)

                    Stimmt, das ist noch einen Tick origineller. :)
                    Aber anscheinend hatten Cheatah und ich hier den gleichen Gedanken.

                    Gruß aus Köln-Ehrenfeld,

                    Gruß aus der Murr-Metropole Backnang,  '-)

                    Martin

                    1. Hi,

                      Aber anscheinend hatten Cheatah und ich hier den gleichen Gedanken.

                      offenbar. Ich habe erst mal einen Augenblick lang überlegt, ob Du da von mir abgeschrieben hast ;-) Die Klage wegen geistigen Diebstahls spare ich mir aber ausnahmsweise *g*

                      Gruß aus Köln-Ehrenfeld,
                      Gruß aus der Murr-Metropole Backnang,  '-)

                      Gruß aus der IT-Metropole Karlsruhe :-)

                      Cheatah

                      --
                      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                      X-Will-Answer-Email: No
                      X-Please-Search-Archive-First: Absolutely Yes
                      1. Hat noch irgendjemand eine Idee?

              2. Hallo Malte,

                Bitte nicht streiten! ;-)

                Fühlt euch bitte nicht persönlich dadurch angegriffen, aber ich werde denoch auf mein DHTML-Menü nicht verzichten, da ich der Meinung bin, dass man nicht wegen einer sehr kleinen Minderheit auf ein Gestaltungselement verzichten sollte, das die Übersicht und Navigation erheblich vereinfacht.

                Darauf brauchst du auch nicht zu verzichten. Denn gut programmiertes JavaScript gewährleistet die Grundfunktionalität auch dann, wenn es deaktiviert ist.

                Kennst du denn eigentlich schon diesen Tipps&Tricks-Artikel? Da ist das auch so, bei nicht aktiviertem JS bleibt das Menü halt von vornherein komplett aufgeklappt. Also gar kein Grund zu streiten.

                Gruß Gernot

              3. Hi

                Ist es ladezeittechnisch gesehen (verzeiht bitte diesen Ausdruck  ) günstiger,

                • eine Lösung zu wählen, bei der ein PHP-Skript das Browsersniffing übernimmt und je nach Browser einen anderen Klappmenücode ausgibt
                • oder eine rein DHTML-Lösung, bei der eine JS-Datei eingebunden wird?

                Wie bereits erwaehnt weiss der Client am Besten was er kann, daher sind serverseitige Useragent Analysen imho nur in Ausnahmefaellen sinnvoll. Fuer das was Du braucht reichen ein paar Zeilen JS um bekannte Methoden festzustellen, die Dir zeigen wie der Browser einzustufen ist.

                Gruesse, Joachim

                --
                Am Ende wird alles gut.
      2. hi,

        maulwurf
        Ehren Mitglied der Verein gegen
        "Javascript warnt: Die Verwendung von Javascript begünstigt Gehirnerweichung" e.V.

        wobei du da wegen des ausmaßes der erweichung des deinigen sicher schon vorstandsmitglied bist, oder?

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hi

          wahsaga

          wobei du da wegen des ausmaßes der erweichung des deinigen sicher schon vorstandsmitglied bist, oder?

          leider nicht. Ich habe mich sehr angestrengt aber es hat nicht geklappt. Du kannst dich nicht vorstellen was für ein Konkurrenzkampf da oben herrscht

          Gruss

          Maulwurf