Tobias Schmidt: Lange select-Boxen

Hallo,

ich habe eine lange Liste mit Schlagwörtern (ca. 28.000 Einträge). Die muss ich im Browser darstellen. Bei einer select- Box bricht der Browser die Übertragung mit einem timeout ab. Geht bis ca. 1500 Einträge gut.
Kennt jemand eine elegante Lösung für das Problem.

  1. Hallo Tobias,

    ich habe eine lange Liste mit Schlagwörtern (ca. 28.000 Einträge). Die muss ich im Browser darstellen.

    Du bist dir darüber im klaren, dass eine Datei mit 28.000 (achtundzwanzigtausend) Einträgen der Art:
    <option>Ich bin ein Eintrag in der Liste</option> etwa 1,5MB groß ist.

    Bei einer select- Box bricht der Browser die Übertragung mit einem timeout ab. Geht bis ca. 1500 Einträge gut.

    Würdest du in einer Liste mit 28' Einträgen etwas suchen wollen? Der Browser ahnt das und bricht vorher ab ;-)

    Kennt jemand eine elegante Lösung für das Problem.

    Kannst du das nicht in eine andere Form bringen? Unterschiedliche Kategorien, A-Z, nach Ländern geordnet?

    Grüße, Maxx

    1. Hallo Tobias,

      ich habe eine lange Liste mit Schlagwörtern (ca. 28.000 Einträge). Die muss ich im Browser darstellen.

      Du bist dir darüber im klaren, dass eine Datei mit 28.000 (achtundzwanzigtausend) Einträgen der Art:
      <option>Ich bin ein Eintrag in der Liste</option> etwa 1,5MB groß ist.

      Bei einer select- Box bricht der Browser die Übertragung mit einem timeout ab. Geht bis ca. 1500 Einträge gut.

      Würdest du in einer Liste mit 28' Einträgen etwas suchen wollen? Der Browser ahnt das und bricht vorher ab ;-)

      Ich glaube der Browser ahnt es echt. Nein ich will nicht drin suchen. Aber wie immer hat sich beim Wissensmanagement gezeigt, das die Verschlagwortung eine Kunst für sich ist und deswegen so viele Schlagworte, weil keiner die Kunst beherrscht (-:

      Kennt jemand eine elegante Lösung für das Problem.

      Kannst du das nicht in eine andere Form bringen? Unterschiedliche Kategorien, A-Z, nach Ländern geordnet?

      Sortieren ist OK. Werde ich auch machen. Allerdings gibt es noch keine sinnvollen Kriterien. siehe Wissensmanagement

      Grüße, Maxx

      1. hi,

        Kannst du das nicht in eine andere Form bringen? Unterschiedliche Kategorien, A-Z, nach Ländern geordnet?

        Sortieren ist OK. Werde ich auch machen. Allerdings gibt es noch keine sinnvollen Kriterien. siehe Wissensmanagement

        alphabetische sortierung ist m.e. immer ein sinnvolles kriterium.

        wenn ich nach einem schlagwort suche, dann weiss ich idR auch mit welchem buchstaben es anfängt.
        wenn ich daraufhin dann nur eine unterseite mit allen mit einem bestimmten buchstaben beginnenden schlagworten öffnen muss, verkürzt das a) die ladezeit und b) die zeit die ich brauche um das gesuchte wort in der liste zu finden.

        gruss,
        wahsaga

        1. du kannst mit php das ServerTimeOut erhöhen!!

          zB
              $SafeMode = strtolower(get_cfg_var("safe_mode"));
              if (!$SafeMode)
                 set_time_limit(60 * 10);
              else
                 echo "<b>Warnung: Timeouteinstellungen können nicht geändert werden.</b><br>";

          ciao seppo

          1. 'nabend,

            du kannst mit php das ServerTimeOut erhöhen!!

            was aber die menge der zum user zu übertragenden daten nicht verändert.
            eine sinnvolle aufteilung wäre sicher der bessere weg.

            gruss,
            wahsaga

  2. Hallo Tobias!

    ich habe eine lange Liste mit Schlagwörtern (ca. 28.000 Einträge).

    Also 28.000 Einträge in einer Select-Box möchte _ich_ nicht durchforsten - was hältst Du von einer Gliederung - zB alphabetisch?

    Bei einer select- Box bricht der Browser die Übertragung mit einem timeout ab.

    Kann ich mir eigentlich nicht vorstellen, da ich schon Webseiten generiert habe, die über 5MB Rohdaten (viele tausend Zeilen) groß waren. Ich denke nicht, dass es am Browser liegt, sondern eher am Server (Server-Timeout).

    Kennt jemand eine elegante Lösung für das Problem.

    Viele. Hängt aber von der Anwendung ab. Eben alphabetisch in Seiten gliedern (dann wirds schneller), oder als Baumstruktur (dann wirds zumindest übersichtlicher), usw., usw.

    mfg

    norbert =:-)

    1. Hallo Tobias!

      ich habe eine lange Liste mit Schlagwörtern (ca. 28.000 Einträge).

      Also 28.000 Einträge in einer Select-Box möchte _ich_ nicht durchforsten - was hältst Du von einer Gliederung - zB alphabetisch?

      Die Einträge sind auf jeden Fall alphabetisch gegliedert. Natürlich kann ich die Einträge in mehrere Selectboxen splitten. Dann erwarte ich aber den selben Timeout, wegen der selben Menge an Daten. Wobei das mit dem Server eine gute Idee ist. Werde ich mal überprüfen.

      Bei einer select- Box bricht der Browser die Übertragung mit einem timeout ab.

      Kann ich mir eigentlich nicht vorstellen, da ich schon Webseiten generiert habe, die über 5MB Rohdaten (viele tausend Zeilen) groß waren. Ich denke nicht, dass es am Browser liegt, sondern eher am Server (Server-Timeout).

      Kennt jemand eine elegante Lösung für das Problem.

      Viele. Hängt aber von der Anwendung ab. Eben alphabetisch in Seiten gliedern (dann wirds schneller), oder als Baumstruktur (dann wirds zumindest übersichtlicher), usw., usw.

      Wie sieht denn so ein Lösung mit einem Baum beispielhaft aus?

      Vielen Dank für die schnelle Antwort.

      mfg

      norbert =:-)

      1. Hallo Tobias!

        Dann erwarte ich aber den selben Timeout, wegen der selben Menge an Daten. Wobei das mit dem Server eine gute Idee ist. Werde ich mal überprüfen.

        Dieses Problem hatte ich bei meinem erwähnten Projekt auch kurz - Daten dauern eben ein wenig, bis sie übertragen sind ;-)

        Wie sieht denn so ein Lösung mit einem Baum beispielhaft aus?

        Auch dieses Problem hatte ich. In meinem Fall habe ich die Daten a la Windows Explorer zum Aufklappen gemacht. Mit guter Logik brauchst Du dazu nur einige Codezeilen und vier Grafiken (zB Space, Root, Opened - , Closed +). Da ich kein JavaScript verwenden durfte, kann man nur immer einen Zweig öffnen - die Selektion wird im QueryString übergeben (?open=a). Damit werden nur die Hauptrubriken und die aktuelle Auswahl geladen.

        Du könntest natürlich alle Daten laden und per JavaScript die Zweige öffnen - dauert aber auch ziemlich lange!

        mfg

        norbert =:-)