YUI Library JavaScript DHTML




    
Subset Matching

/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
  margin:0;
  padding:0;
}










/* custom styles for multiple stacked instances  */
#example1 { z-index:9001; } /* z-index needed on top instances for ie & sf absolute inside relative issue */
#example2 { z-index:9000; } /* z-index needed on top instances for ie & sf absolute inside relative issue */
.autocomplete { padding-bottom:2em;width:40%; }/* set width of widget here*/




Subset Matching



  

This example demonstrates AutoComplete's queryMatchSubset property. The first instance of AutoComplete has queryMatchSubset enabled for maximum cache performance such that as you type, the query is searched within previously cached results. For best results, the DataSource should return a complete set of results when a single letter is queried such that subset matching will also return a complete set of results.


The second AutoComplete instance does not enable queryMatchSubset
so each typed letter results in a new request to the server.


Note the custom CSS that is needed for stacking AutoComplete instances.


      



    

Note: The flat-file database accessed here has a limited number of terms; for best results, type one-letter at at time and let the AutoComplete instance return — if you type a full, highly-specifc phrase (such as your name) you'll probably get no results from the small dataset.


  

First AutoComplete instance enables queryMatchSubset:


  
    
    

  

  

Second AutoComplete instance does not enable queryMatchSubset:


  
    
    
  

  

YAHOO.example.QueryMatchSubset = function(){        
    var myDataSource = new YAHOO.util.XHRDataSource("yui_2.7.0b-assets/autocomplete-assets/php/ysearch_flat.php");
    myDataSource.responseSchema = {
         recordDelim: "\n",
         fieldDelim: "\t"
    };
    myDataSource.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
    myDataSource.maxCacheEntries = 60;
    // First AutoComplete
    var myAutoComp1 = new YAHOO.widget.AutoComplete("ysearchinput1","ysearchcontainer1",myDataSource);
    myAutoComp1.queryMatchSubset = true;
    // Second AutoComplete
    var myAutoComp2 = new YAHOO.widget.AutoComplete('ysearchinput2','ysearchcontainer2', myDataSource);
    
    return {
        oDS: myDataSource,
        oAC1: myAutoComp1,
        oAC2: myAutoComp2
    }
}();




   
  
yui_2.7.0b.zip( 4,431 k)