Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #15741

Re: Javascript Argument funkcji

From Marek S <precz@spamowi.com>
Newsgroups pl.comp.lang.php
Subject Re: Javascript Argument funkcji
Date 2018-02-22 17:00 +0100
Organization ATMAN - ATM S.A.
Message-ID <p6mpfn$7c1$1@node1.news.atman.pl> (permalink)
References <5a8d4ed8$0$658$65785112@news.neostrada.pl> <p6k5os$6mr$1@node2.news.atman.pl> <5a8e70d0$0$557$65785112@news.neostrada.pl>

Show all headers | View raw


W dniu 2018-02-22 o 08:27, konsul41@wp.pl pisze:

> Piszę "Applikację" SPA i nie ma sensu historia przeglądarki (wszystkie 
> podstrony są ładowane dynamicznie do DIV, główny adres nie zmienia się).+

Nie lepiej mieć wtedy iframe'a? Nie będzie kłopotu z URLami. To tak na 
marginesie bo poza wątkiem.

> Poszukuję pomysłu na coś w rodzaju historii na stronie.
> w jednym z div mam dwa przyciski jeden w tył, a drugi w przód.
> Jak w prosty sposób zrobić coś w rodzaju historii do której tylko 
> nieliczne podstrony mogą dodawać "linki" gdzie można wrócić.

 > (...) Nie wiem czy to dobry pomysł i jak to zrobić. Raczkuję dopiero w
 > Javascript.
 > A może można to lepiej zorganizować?

Ok, rozumiem. Tą pseudo-historię możesz trzymać gdzie chcesz - 
cookies/magazyn. To jest ok. Ja bym to zrobił zupełnie inaczej.

Po pierwsze pakowanie fragmentów HTML'a, kodu JS z nim powiązanego itp. 
jako kroków w historii to chory pomysł. Moim zdaniem krok historii 
powinien być obiektem np:

krok={url_powrotu:xxx, cecha1:xxx, cechaN:xxx ...}

"Cecha" to jakiś parametr jeśli w ogóle go potrzebujesz. Potem 
poszczególne kroki byłyby umieszczane w tablicy:

krkoki=[];
kroki.push(krok1);
kroki.push(krok2);

...i taki obiekt gdzieś tam, gdzie chcesz zapisywany i odczytywany. Zero 
HTMLa, zero jakiś dziwactw - tylko dane.

Po drugie.
Rysowanie historii w dokumencie HTML powinno odbywać się z poziomu JS w 
postaci odtwarzania kroków w/w tablicy i DYNAMICZNEGO kreowania 
poszczególnych składowych. Zapomnij o innerHTML. Np. jeśli krok ma 
wyglądać jako:

<section id="historia">
   <div class="krok"></div>
   <div class="krok"></div>
   <div class="krok"></div>
   ...
</section>

To użyj

document.createElement("div");

Przypisz klasę, która określi wygląd, użyj addEventListener("click") do 
uwrażliwienia na kliknięcie, przypisz obrazek do tła tego DIVa i/lub 
dodaj tekst do DIVa. Potem go appenduj do elementu "historia". I tak w 
pętli po wszystkich elementach historii za pomocą for...of.

Albo inaczej: przeczytaj najpierw jakiś podręcznik do programowania w 
JS. Przy czym taki, który jest w miarę świeży, najlepiej dotyczący 
ECMA6. Nie chodzi wyłącznie o zapoznanie się z referencjami JS ale 
zasadami posługiwania się tym językiem w kontekście DOM, aplikacji WWW. 
2-3 dni lektury z pewnością sporo rozjaśnią.

-- 
Pozdrawiam,
Marek

Back to pl.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Javascript Argument funkcji "konsul41@wp.pl" <konsul41@wp.pl> - 2018-02-21 11:50 +0100
  Re: Javascript Argument funkcji Marek S <precz@spamowi.com> - 2018-02-21 17:12 +0100
    Re: Javascript Argument funkcji "konsul41@wp.pl" <konsul41@wp.pl> - 2018-02-22 08:27 +0100
      Re: Javascript Argument funkcji Freja Draco <frreja@poczta.fm> - 2018-02-22 14:39 +0100
        Re: Javascript Argument funkcji Freja Draco <frreja@poczta.fm> - 2018-02-22 14:55 +0100
      Re: Javascript Argument funkcji Marek S <precz@spamowi.com> - 2018-02-22 17:00 +0100
        Re: Javascript Argument funkcji "konsul41@wp.pl" <konsul41@wp.pl> - 2018-02-23 07:59 +0100

csiph-web