Flori: Aufbau von Dropdown / Select Boxen dauert zu lange

Hallo alle zusammen,

habe hier ein Problem mit der Performance beim Aufbau einer HTML Seite. Es handelt sich dabei um ein Formular, in dem einige Dropdown-Boxen vorkommen. PHP / PEAR DB_DataObjects und Formbuilder bauen das Formular auf. Insgesamt sind in den Dropdown-Boxen ca 8000 Einträge aufgelistet.

Daher verständlich: Der Aufbau der Seite dauert ca. 3-5 Sekunden (localhost). Da ich in den meissten Dropdown-Boxen onblur=this.form.submit() verwende (das Formular ändert sich dynamisch) um weitere Dropdown-Boxen darzustellen, wird diese Wartezeit doch recht lästig.

Daher eine Frage: Habe ich eine Möglichkeit, Formularfelder bei einem Reload nicht neu zu laden?

Und noch eine: Ist der Aufbau einer select-Box mit Javascript schneller, bzw. habe ich damit die Möglichkeit das ständige Neuladen der 8000 Einträge vom Server zum Client zu umgehen?

Und noch eine: AJAX ist ja nun in aller Munde. Kann mir das hier irgendwie helfen?

Merci, falls jmd Zeit findet, mit mir darüber nachzuhirnen.
Grüße,
Flo

  1. hi,

    Daher eine Frage: Habe ich eine Möglichkeit, Formularfelder bei einem Reload nicht neu zu laden?

    Nein.
    Aber du hast die Möglichkeit, keinen Reload zu machen.

    Und noch eine: Ist der Aufbau einer select-Box mit Javascript schneller, bzw. habe ich damit die Möglichkeit das ständige Neuladen der 8000 Einträge vom Server zum Client zu umgehen?

    Wenn du nur die Daten für das jeweils benötige Selectfeld nachlädst, könnte das schneller gehen.

    Und noch eine: AJAX ist ja nun in aller Munde. Kann mir das hier irgendwie helfen?

    Ja. durchaus möglich.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Moin!

    habe hier ein Problem mit der Performance beim Aufbau einer HTML Seite. Es handelt sich dabei um ein Formular, in dem einige Dropdown-Boxen vorkommen. PHP / PEAR DB_DataObjects und Formbuilder bauen das Formular auf. Insgesamt sind in den Dropdown-Boxen ca 8000 Einträge aufgelistet.

    Das ist von der Benutzerfreundlichkeit her eine Frechheit.

    Erfinde eine bessere Auswahlmöglichkeit. Nicht nur Browser, auch ganz normale Applikationen haben bei derartig riesigen Auswahlboxen ein Problem - weil sie nicht für solche riesigen Mengen vorgesehen sind. Da findet man doch nie, was man wirklich sucht.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
  3. Und noch eine: AJAX ist ja nun in aller Munde. Kann mir das hier irgendwie helfen?

    Aber sicher, denn durch diese Technik wärst du imstande select-boxen einzeln zu laden. Also müsstest du selectbox1 nicht nochmal laden nach der Auswahl in dieser, sondern kannst direkt selectbox2 laden.

    Wählst du in selectbox2 etwas aus, läd sich dynamisch selectbox3 ohne selectbox1+2 neuladen zu müssen..

    Anleitung für Ajax:
    Das in deine Website einbinden:

    <script type="text/javascript">
    function createRequestObject() {
        var ro;
        var browser = navigator.appName;
        if(browser == "Microsoft Internet Explorer") {
            ro = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            ro = new XMLHttpRequest();
        }
        return ro;
    }

    var http = createRequestObject();

    function sndReq(element, postdata, action) {
        http.open('POST', action);
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        http.onreadystatechange = new Function("handleResponse('" + element + "');");
        http.send(postdata);
    }

    function handleResponse(element) {
        if(http.readyState == 4) {
     document.getElementById(element).innerHTML=http.responseText;
        }
    }
    </script>

    ein.
    Und so kannst du eine Seite dynamisch nachladen (die eben immer nur die gewollte selectbox ausgäbe. Diese läds du z.B. in einen div container oder so.

    sndReq('id-des-divs-containers', 'POST-Daten so angegeben: Variable='+document.formular.element.value+'&Variable...usw.', 'eine-seite-mit-einer-selectbox.php');

    Viel Spaß

    Sebastian

    PS: Man merkt vorallem an der Einfachheit, wie simpel Ajax sein kann. :)

  4. Hallo.

    AJAX ist ja nun in aller Munde. Kann mir das hier irgendwie helfen?

    Geschmackssache. Vielleicht doch besser morgens Aronal und abends Elmex.
    MfG, at