Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Odliczanie czasu do wydarzeń
--afgan227--
post
Post #1





Goście







Witajcie
Mam mały problem. Muszę zrobić stronę w Xhtml 1.0 z elementami javascript. Stronę napisałem. Teraz kombinuję ze skryptem. Wymyśliłem sobie , że napisze skrypt, który będzie odliczał czas do zawodów. Znalazłem w internecie kilka skryptów o podobnym działaniu. Spróbowałem coś napisać od siebie. Nie jestem pewny 2 rzeczy. Pierwsza to poprawności tego co namazałem, druga czy dobrze wstawiam to na stronę.

Tak jak widać w linku wydumałem sobię by pozostały czas był wpisywany w okienka.
Co do wstawiania skryptu w xhtml trzeba to zrobić na stronie pod koniec sekcji body ? za pomocą \
  1. <script type="text/javascript">
  2. // <![CDATA[
  3. /* Tutaj umieść kod skryptu. */
  4. // ]]>

i jeszcze taki zapis
  1. <script type="text/javascript" src="plik.js"></script>


Tak to wygląda

PS. Dopiero raczkuję , więc mam nadzieje , że będziecie wyrozumiali
Go to the top of the page
+Quote Post
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Ty to pisałeś? Bo wygląda jak zlepek czegoś, o czym nie masz pojęcia:
1. Nigdzie nie deklarujesz zmiennej pozostalyCzas, a na początku funkcji ją sprawdzasz,
2. w instrukcjach IF zawsze rób klamerki! Tutaj else wisi sobie gdzieś w powietrzu, do tego cała instrukcja jest źle zbudowana,
3. drift1 i teraz mają taką samą datę, którą później porównujesz,
4. napisałeś funkcję ileDoEventu i jej w ogóle nie uruchamiasz,
5. ustawiając interwał podajesz argumenty (ileDoEventu(2014, 1, 10, 0, 0, 0, 0)), a funkcję napisałeś tak, że nie przyjmuje żadnych.

Zacznij od podstaw, zobacz jak się debuguje javascript
Go to the top of the page
+Quote Post
afgan227
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.02.2014

Ostrzeżenie: (0%)
-----


Miałeś rację z tym poduczeniem. Na szybko pisane i sporo błędów. Postanowiłem poczytać i zacząć budować od najprostszych rzeczy ten skrypt od nowa. I wzbogacać go o dodatkowe elementy. Po paru ładnych chwilach spędzonych z nim kod wygląda tak :

kod

aczkolwiek w takiej formie jak jest to wyrzuca non stop te odliczanie. Chciałbym aby wynik wrzucał np do okienka w tabeli. Jak to zrobić?
Go to the top of the page
+Quote Post
afgan227
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.02.2014

Ostrzeżenie: (0%)
-----


O kurcze. Nie spodziewałem się aż takiej pomocy (IMG:style_emoticons/default/smile.gif) Teraz widzę jak dużo mi brakowało. Nie jestem pewny czy dobrze rozumiem kod. Na początku tworzone są 2 tablice. Jedna z datami, a druga z czymś. W każdym razie ta druga przypisuje elementy z formy zegara.

Metoda sliced jakby dzieli dwie zmienne i tworzy z niej jedną inną tak? W tym wypadku "bierze" date wydarzenia i miejsce gdzie ma być wpisane ile zostało. Zgadza się?

Nie rozumiem tylko zapisu, a może raczej zasady działania.

Kod
function countDate(actualTime, eventDate, outputNodeNumber){
      
        if( actualTime > eventDate ){
      
              if( inputsCopyNode.length !== 0 ){
            
                  inputsCopyNode.splice(outputNodeNumber, 1);
          
                  eventsTime.splice(outputNodeNumber, 1);
          
                  sliced = true;
    
                  return 'Nieaktualne';
Go to the top of the page
+Quote Post
owca_82
post
Post #5





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

Ostrzeżenie: (0%)
-----


- do funkcji przekazywana jest tablica z datami kolejnych wydarzeń wg. określonego formatu
- tworzona jest "kopia" kolekcji z kontrolkami formularza (kolekcja elements formularza jest tylko do odczytu). (*)
- definicja funkcji odpowiadającej za obliczenie czasu i zwrócenie odpowiedniego łańcucha
- definicja funkcji odpowiadającej za wypełnienie wszystkich "inputów" formularza
- wypełnienie danymi "inputów" po wejściu na stronę
- ustawieni interwału który będzie wypełniał te "inputy" co sekundę

Metoda splice przycina tablicę (usuwa z niej dane o określonym indeksie), w tym przypadku usuwa z tablicy zawierającej referencję do "inputów", ten z nich w którym wyświetli się tekst "nieaktualne" - przycina też w analogiczny sposób tablicę wejściową (tą z datami). Jeżeli wszystkie pola będą "nieaktualne" to kończy interwał.
Tak naprawdę część tej funkcji jest tylko po żeby skrypt(funkcja odpowiedzialna za wyświetlanie wyników) nie przechodził nie potrzebnie po wszystkich "inputach", a tylko przez te które są "aktualne" - taka forma "optymalizacji" heee (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:51