rekneh: Rechtschreibfehler der Nutzer umgehen. Suggest ohne Call?

problematische Seite

Hallo,

ich hatte mir vor ein paar Tagen schon Gedanken um die Rechtschreibprobleme von Nutzern und mir gemacht. Dabei ist mir das Thema "Suggest" bei Inputfeldern (besonders bei der Suche) aufgefallen. Ich habe mir daher mal diverse Beispiele herausgesucht. Besonders aufgefallen ist mir https://kundendienst-info.de/

Dort scheint ein Suggestcall ohne Request zu funktionieren. Im Quelltext ist nichts zu sehen. Wie funktioniert hier der Suggestcall?

  1. problematische Seite

    Ich habe mir das mal angeschaut. Tatsächlich findet kein Request bei den Eingaben statt. Relevanter Quelltext:

    <input type="text" class="form-control" name="s" placeholder="Hersteller eingeben" autocomplete="off" aria-autocomplete="list">
    

    aria-autocomplete="list" sorgt dafür, dass der Browser die Liste baut. Die Kandidaten für die Wortliste stammen aus der im Browser integrierten Rechtschreibprüfung. Das ist nicht weiter verwunderlich, denn die basiert auf einer Wortliste.

    Kandidaten zum Ansehen sind die Pakte quelloffener Programme wie ispell oder aspell (die gibt es nicht nur für Linux)

    1. problematische Seite

      Hallo ursus contionabundo,

      vielen Dank für deine Analyse, such mal nach "miele". Dort wird "Mieles" vorgeschlagen und dieser Vorschlag ist wirklich im Index ( https://kundendienst-info.de/?s=mieles ) vorhanden. Ähnliches bei dem Wort "Grabaum" das ist doch nicht in der Rechtschreibprüfung des Browsers oder?

      Der Suggest scheint "nur" Wörter zu enthalten die tasächlich auf der HP sind. Das geht doch nicht mit der Rechtschreibprüfung, oder etwa doch?

      1. problematische Seite

        <input type="text" class="form-control" name="s" placeholder="Hersteller eingeben" autocomplete="off" aria-autocomplete="list">
        

        Tatsächlich. Die liefern eine lange Wortliste mit:

        var searchInputs = document.getElementsByName("s");
        for(var i = 0; i < searchInputs.length; i++) {
        var awesomplete = new Awesomplete( searchInputs[i] );
        awesomplete.list = ["000","0000","00000", [### GEKÜRZT###],"zylindersystem","zzgl","下次见","售后服务"];
        awesomplete.minChars = 2;
        awesomplete.maxItems = 10;
        }
        

        Das (ein) Skript mit der Klasse Awesomplete habe ich dann hier gefunden.

        Effizient sieht das nicht aus. 281.127 Bytes an Daten (im HTML-Quelltext), die einmal als Quelltext, und dann nochmals als Array im Speicher landen. (Und mit jedem Request übertragen werden...)

        1. problematische Seite

          1. problematische Seite

            Danke, also doch im Quelltext verankert. Das habe ich selbst auch übersehen. Die Suggestlösung finde ich super. Allerdings jedem Nutzer alle Suggests mit zu liefern die 256kb bei jedem Seitenaufruf kann man sich sparen...