Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Gergello
    addikt

    Nem igazán kellene megszakítanod a már futó html lekérdezést. Tegyél ki spinnert, jelezd valahogy, hogy éppen fut egy lekérdezés.
    Vaaagy oldd meg szerver oldalon, hogy egy ilyen bagatell html hívás ne tartson másodpercekig.

    Találtam egy elég egyszerű megoldást rá. Sorszámozom az ajax hívásokat, az aktuális sorszámot elküldöm a szervernek is. Amikor megérkezik a válasz, az tartalmazza a hívás sorszámát is. Ellenőrzöm, hogy az utolsó sorszámú hívásra jött-e, ha igen, akkor megjelenítem a tartalmát. Kicsit Frédi-Béni megoldásnak hangzik. :))

    Nem tart másodpercekig, mert nem bonyolult a feldolgozó része, valami miatt néha 1-1 hívásra a válasz késett és az borította fel a rendszert. Spinnert ez miatt nem tennék bele, mert csak lassúnak tűnne, pedig gyors valójában.

  • Gergello
    addikt

    Sziasztok !

    Egy kis jquery kódban kérném a segítségetek.
    Van egy input text mező, amihez csináltam egy kis saját autocomplet funkciót.

    Működési elve: a szövegmező .on("input" ... eseményére csinálok egy ajax hívást, ami visszakap egy html kódrészletet és ezt kell megjeleníteni.

    Helyi teszt szerveren minden tökéletes működött, mert gyors a szerver.
    Felraktam az élesre és az a probléma, hogy a néha lassabban jön meg a válasz és ez miatt nem az utolsónak beírt (végső) input mező tartalom alapján kapott eredményt jeleníti meg, hanem az utolsónak befejeződött ajax hívás eredményét.

    Pl. begépeled, hogy "szerszámkészlet" szépen futnak a hívások, de előfordul, hogy legvégül csak a "szerszámk" keresőszó alapján kapott találatokat jeleníti meg. Hiába látom azt a Chrome Network fülben, hogy az utolsónak küldött ajaxban a "szerszámkészl" adatot küldte el a feldolgozó(válaszadó) résznek.

    Szerintetek, hogy oldjam meg ?
    Szerintem minden ajax hívásban meg kellene szakítani a korábban indított ugyanilyen hívást. De hogy ? Nagyon köszönöm.

    Kód:

    $('#product_search').on("input", function() {
            doSearch();
        });

    function doSearch() {
        $search_string = $('#product_search').val();
        
        if ($search_is_first_submit || (!$search_is_first_submit && $search_string != $last_search_string)) {
            $.ajax({
                url: 'index.php?route=product/search/searchhint',
                type: 'post',
                data: 'search=' + $search_string,
                dataType: 'json',
                success: function(json) {
                    if (json['success']) {
                        $('#search-hint').html(json['success_text']);
                    }    
                }
            });
        }
        
        $last_search_string = $search_string;
        $search_is_first_submit = false;
    }
    function showSearchHint() {
        doSearch();
        
        $('#search-hint').removeClass('d-none');
    }
    function hideSearchHint() {
        setTimeout(function () {
            // Things to do before the focus is out
            $('#search-hint').addClass('d-none');
        }, 150);
    }

  • Gergello
    addikt

    A következő kódban be tudnátok állítani a szöveg színét fehérre és a betűtípust verdana-ra? Nem ismerem a szintaktikát :( , thx !

    var months=new Array(13);
    months[1]=''Január'';
    months[2]=''Február'';
    months[3]=''Március'';
    months[4]=''Április'';
    months[5]=''Május'';
    months[6]=''Június'';
    months[7]=''Július'';
    months[8]=''Augusztus'';
    months[9]=''Szeptember'';
    months[10]=''Október'';
    months[11]=''November'';
    months[12]=''December'';
    var time=new Date();
    var lmonth=months[time.getMonth() + 1];
    var date=time.getDate();
    var year=time.getYear();
    if (year < 2000)
    year = year + 1900;
    document.write( + year + ''. '');
    document.write( '' '' + lmonth + '' '' + date + ''.'');

Új hozzászólás Aktív témák