dziekuje za odpowiedz ale co mam wywalic te 1000 ms czy co powinienem zrobic ? nie za bardzo sie znam na JS
Stwórz sobie zmienną z datą końca odliczania i z każdym wywołaniem setInterval odejmuj od obecnej daty, datę końca odliczania i dopiero na podstawie tej liczby oblicz czas.
Poza tym jak napisał @_13th_Dragon setInterval nie gwarantuje, że kod wykona się co 1000ms a jedynie, że komputer będzie się starał wykonać to co 1000ms. W praktyce jest to zawsze kilka ms więcej. Do tego przeglądarki dla nieaktywnych kart w przeglądarce zwiększają minimalny czas setInterval. Np. w przypadku Chrome dla nieaktywnych kart minimalny czas setInterval zwiększa się do 1000ms a do tego, te karty mają najniższy możliwy priorytet dla procesora więc w praktyce, może to być nawet 1100ms albo i więcej.
https://github.com/adobe/chromium/blob/master/webkit/glue/webkit_constants.h#L18