XML Ajax Suche

Dieses Thema im Forum "Webentwicklung" wurde erstellt von leex, 9. April 2014 .

Schlagworte:
  1. 9. April 2014
    Hey,
    ich habe hier ein kleines Script, mit dem man zu einem Landkreis das passende Kennzeichenkürzel suchen kann (z.B. Eingabe München --> Ergebnis M - München)

    Leider ist mein Script etwas langsam und hängt kurz wenn man etwas eingibt in das input-Feld.

    Wie kann ich das optimieren?

    Code:
    $(document).ready(function(){
    
     $('#search').on('keydown', function(){
     $.ajax({
     type: "GET",
     url: "landkreise.xml",
     dataType: "xml",
     success: parseXML
     });
     });
    
     function parseXML(xml){
     
     var result = $('#results');
     var hint = '';
     var searchFor = $('#search').val();
     var reg = new RegExp(searchFor, "i");
     
     $(xml).find('record').each(function(){
     var link = $(this).find('Link').text();
     var code = $(this).find('Code').text();
     
     var landkreis = $(this).find('Landkreis').text();
     var landkreisSearch = landkreis.search(reg);
     
     if(landkreisSearch > -1){
     if (hint == ''){
     hint ="<li><a target='_blank' href='" + link +"''>" +code+ "</a> - " + landkreis + "</li>";
     } else {
     hint +="<li><a target='_blank' href='" + link +"''>" +code+ "</a> - " + landkreis + "</li>";
     } 
     
     result.html("<ul>" + hint + "</ul>");
    
     }
     });
     
     
    
     }
    
    });
    
     
  2. 9. April 2014
    XML Ajax abfrage Optimieren & Event verzögern

    wenn du schnell etwas eingibst hängt er, weil er dann für jeden buchstaben das ganze suchen durchläuft. besser wäre das verzögert zu machen, also wenn jemand eintippt. zudem läd er dabei jedes mal die xml neu, das sollte nur einmal gemacht werden.

    also auslöser eine halbe sekunde nach keydown und die xml nur ein mal laden.

    hier mal pseudocode weil ich ka hab wie das richtig gehört:

    Code:
    var xmltmp=false;
     $('#search').on('keydown', function(){
     if(!xmltmp){
     $.ajax({
     type: "GET",
     url: "landkreise.xml",
     dataType: "xml",
     success: function(a){xmltmp=a;}
     });
     }
    
     clearTimeout($.data(this, 'timer'));
     var wait = setTimeout(function(){parseXML(xmltmp);}, 500);
     $(this).data('timer', wait);
    
     });
    
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.