jQuery-Entwicklung: Evaluierung einer Search-Funktion auf Basis von jQuery UI Autocomplete

Executive Summary:
Um was geht es in diesem Beitrag:
Inhaltsverzeichnis

jQuery-Entwicklung: Evaluierung einer Search-Funktion auf Basis von jQuery UI Autocomplete

Ein Partner der mwbsc GmbH ist Hersteller eines B2B-Shopsystems. In einem Einführungsprojekt wurden besondere Anforderungen an die Suche innerhalb des Shops gestellt. Aufgabenstellung war die Evaluierung von Such-Funktionen bzw. deren Darstellung. Eine Demo ist nachfolgend zu sehen:

<!doctype html>
 <html lang="en">
 <head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>jQuery UI Autocomplete - Categories</title>
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
 <link rel="stylesheet" href="/resources/demos/style.css">
 <style>  .ui-autocomplete-category {
 font-weight: bold;
 padding: .2em .4em;
 margin: .8em 0 .2em;
 line-height: 1.5;
 }
 </style>
 <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
 <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
 <script>
 $( function() {
 $.widget( "custom.catcomplete", $.ui.autocomplete, {
 _create: function() {
 this._super();
 this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
 },  _resizeMenu: function () {
 this.menu.element.hide();
 },
 _renderMenu: function( ul, items ) {
 var that = this,
 currentCategory = ""; $('#searchresults-Items').html("<b>Artikel</b><ul>"); $('#searchresults-Products').html("<b>Produkte</b><ul>"); $('#searchresults-People').html("<b>Menschen</b><ul>");
 $.each( items, function( index, item ) {
 $('#searchresults-'+item.category).append("<li>"+item.label+"</li>");
 }); $('#searchresults-Items').append("</ul>"); $('#searchresults-Products').append("</ul>"); $('#searchresults-People').append("</ul>");
 }    });
 var data = [
 { label: "Wanne", category: "Items" },
 { label: "Wolle", category: "Items" },
 { label: "Webstuhl", category: "Items" },
 { label: "Web-Maschinen", category: "Products" },
 { label: "Web-Material", category: "Products" },
 { label: "Web-Magazine", category: "Products" },
 { label: "Matthias Weber", category: "People" },
 { label: "Martin Werber", category: "People" },
 { label: "Sebastian Weber", category: "People" }
 ];
 $( "#search" ).catcomplete({
 delay: 0,
 source: data
 });
 } );
 </script>
 </head>
 <body>
 <label for="search">Search: </label><input id="search">
 <div id="searchresults">
 <div id="searchresults-Items" style="float:left;width: 30%;padding: 20px;background: #eee;box-sizing: border-box;"></div>
 <div id="searchresults-Products" style="float:left;width: 30%;padding: 20px;background: #eee;box-sizing: border-box;"></div>
 <div id="searchresults-People" style="float:left;width: 30%;padding: 20px;background: #eee;box-sizing: border-box;"></div>
 </div>
 </body>
 </html>

 

Review zum Projekt:

 

Diese Demo hat noch keinen Datenbankbezug. Jedoch zeigt es schön, dass mit jQuery eine entsprechende Darstellung möglich ist. In der nächsten Phase des Projektes gilt es die statischen Daten durch einen entsprechenden Datenzugriff auszutauschen und die Performance der Suche akzeptabel zu halten. Hier sind schon mehrere Ideen in der Versuchsphase.

Falls als auch Sie ein großes Web-Projekt (ASP.net) anstehend haben und noch Entwicklungsunterstützung benötigen, so kommen Sie gerne auf uns zu:

    weitere insights

    Was bedeutet CRM?

    CRM bedeutet Customer Relationship Management und dient der Administration der Kundenbeziehungen. Das System unterstützt Unternehmen, die Beziehung zu ihren Kunden zu verbessern. Ziel ist es,

    weiterlesen >>

    Abkürzungen in der Cloud

    Die Erfindung der Cloud animierte Informatiker und PR-Berater zu neuen Abkürzungen. Die Computerwoche hat die beliebtesten Abkürzungen aufgelistet. Den Artikel finden Sie hier: Was die

    weiterlesen >>