Pokaż wyniki od 1 do 7 z 7

Wątek: Blokada przed przytrzymaniem klawisza

  1. #1
    Zarejestrowany
    Dołączył
    Dec 2012
    Posty
    9

    Domyślnie Blokada przed przytrzymaniem klawisza

    Witam, napisałem system poruszanie się po mapie za pomocą JavaScriptu, Ajaxu i PHP. Polega on na tym że po naciśnięciu strzałki np. w górę wysyłam ajaxem zapytanie do pliku .php. System działa poprawnie tylko gdy naciskam strzałki, jednak gdy je przytrzymuje postać "teleportuje" się do końca mapy. Czy jest jakiś sposób aby w JavaScripcie zablokować możliwość trzymania klawisza lub aby po przytrzymaniu wykonywało zapytanie tylko raz.

  2. #2
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    No to musisz w php zapisać czas ostatniego ruchu i porównywać obecny z tym czasem.

    Kod php:
    $poprzedniczas//wartość z bazy danych
    $obecnyczas microtime(true);
    $odstepczasupomiedzyruchem 500//ms bodajże, ale nie jestem pewien
    if ($obecnyczas $poprzedniczas $odstepczasupomiedzyruchem) {
    //można się ruszyć
    } else {
    //nic się nie dzieje.

    Odpowiedni kod po stronie klienta, w javascripcie, który blokuje możliwość żądania ajax na 5 sekund czy tam ileś.

  3. #3
    Zarejestrowany
    Dołączył
    Dec 2012
    Posty
    9

    Domyślnie

    Na to już wpadłem, ale myślałem że można temu zaradzić jakąś jedną linijką w JSie .

  4. #4
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    To co się dzieje po stronie klienta [javascript] nie ma większego znaczenia.

    Jeżeli takie "zabezpieczenie" odbywałaby się w tylko w javascripcie.. To przecież mogę bez problemu zmienić kod na jaki sobie zechcę i pozbyć się blokady - w ten sposób mogę nie tylko dotrzeć gdzie chcę w prostej linii ale także na jakąkolwiek pole na mapie, wysyłając odpowiednie żądania do serwera.

    Co do sposobu.. To albo zapisałbym tę wartość w sesji albo w tabeli o typie MEMORY.

  5. #5
    Zarejestrowany
    Dołączył
    Dec 2012
    Posty
    9

    Domyślnie

    Trudno, a więc zrobię to podanym wyżej sposobem.

  6. #6
    Zasłużony Awatar Rodkan
    Dołączył
    Mar 2011
    Posty
    1,465

    Domyślnie

    http://api.jquery.com/keyup/
    http://api.jquery.com/keydown/
    http://api.jquery.com/keypress/

    Zobacz jeśli chcesz to robić w JS. Ale odradzam z tego samego powodu co Drikam. Choć nota bene jeśli dodasz tę opcję to ograniczysz ilość wysyłanych żądań AJAX.

  7. #7
    Programista Awatar Aravorn
    Dołączył
    Apr 2011
    Posty
    343

    Domyślnie

    Wystarczy zwykła flaga bitowa w połączeniu ze wspomnianymi zdarzeniami wciśnięcia i zwolnienia danego klawisza

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. [PORADNIK] jak chronić się przed buforowaniem CSS
    Przez scorpiusx w dziale Budowa gry via www
    Odpowiedzi: 1
    Ostatni post / autor: 22-03-2012, 14:23
  2. Zabezpieczenie przed hit fakerem
    Przez haxigi w dziale Budowa gry via www
    Odpowiedzi: 7
    Ostatni post / autor: 02-06-2010, 23:08
  3. Zabezpieczenie przed Proxy?
    Przez Grajek w dziale Budowa gry via www
    Odpowiedzi: 19
    Ostatni post / autor: 06-04-2010, 20:16
  4. Zabezpieczenie przed botami
    Przez Nie zarejestrowany w dziale Budowa gry via www
    Odpowiedzi: 21
    Ostatni post / autor: 01-12-2009, 20:28
  5. Zabezpieczenie przed botami
    Przez Skrash w dziale Pytania dotyczące silnika Xnova
    Odpowiedzi: 4
    Ostatni post / autor: 06-07-2009, 11:38

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •