![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Problem:
Na stronie generuję tabelę w której wyświetlam regon firmy i jej nazwę - rekordów jest dużo. Po najechaniu na regon firmy wywoływane jest poniższe zdarzenie, które pobiera asynchronicznie dane na temat wskazanej firmy i ładuje je do odpowiedniego diva, który jest wyświetlany na zasadzie tooltipa. Problem w tym, że jeżeli będę szybko przesuwał myszką po regonach (góra-dół-góra) to do bazy leci tak dużo zapytań, że przy niewielkiej ilości użytkowników i takich eksperymentach można zajechać serwer - obciążenie procesora 100%. Przykładowo przesuwam szybko myszą po 200 regonach i zatrzymuje się na 201 a w divie zostaje wyświetlone 201 wyników (przeglądarka szybko wyświetla dane od 1 do 201 wyniku). Mogę problem rozwiązać na 2 sposoby. Zrobić zdarzenie na click() albo opóźnić wysyłanie requesta. setTimeout nie załatwia sprawy ponieważ opóźnia tylko wyświetlenie wyniku - te 201 zapytań sql zostanie i tak wykonanych. Chcę osiągnąć: Zapytanie ajax zostanie wykonane a dane wyświetlone jeśli użytkownik przytrzyma kursor myszy na regonie przez 1s Dotychczasowy kod: Kod $(".szczegoly_firma").mouseover(function(){ if ($(this).html().length != 0) { var sTyp = $(this).attr("class"); var aTyp = sTyp.split(" "); var sMd5 = $.md5($(this).html()); var sRegon = $(this).html(); setTimeout( function(){ $.ajax({ type: "POST", url: "daneofirmie.php", cache: "false", timeout: 1000, data: ({ajax: sMd5, regon: sRegon, typ: aTyp[0]}), success: function(tresc){ $("#szczegoly_okno").empty(); $("#szczegoly_okno").show(); $("#szczegoly_okno").append(tresc); } }); } , 1000 ); } }); Może znajdzie się ktoś kto jest w stanie coś pomóc. Pozdrawiam -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
clearTimeout, może słyszałeś
![]() dodaj do teog mouseout |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
clearTimeout, może słyszałeś ![]() dodaj do teog mouseout Mam zdarzenie mouseleave() a clearTimeout nie działa. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
to pokaż jak próbowałeś
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
to pokaż jak próbowałeś ![]() Pewnie źle skoro się upierasz. Zależy mi na czasie więc może napiszesz jak użyć, zadziała i masz pomógł ![]() -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 72 Pomógł: 10 Dołączył: 2.02.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
najpierw zapytanie ajax i setTimeout w success na funkcję sprawdzającą czy użytkownik opuścił dane pole.
do tego zdarzenie ustawiające odopowiednią flagę, oznaczającą czy opuścił dane pole |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.07.2025 - 10:48 |