Article View: pl.comp.lang.javascript
Article #51864Re: Argument funkcji
From: zpksoft
Date: Sat, 03 Mar 2018 16:39
Date: Sat, 03 Mar 2018 16:39
78 lines
5618 bytes
5618 bytes
W dniu sobota, 3 marca 2018 16:34:48 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Sat, 3 Mar 2018 06:25:59 -0800 (PST), zpksoft napisał(a):
>
> > OK, daj więc przykład. Ułatwię Ci: mamy tabelę z wierszami. User klika w
> > jakiś wiersz. Podaj mi teraz kod na jego identyfikację przez "przejście
> > po skojarzonych elementach DOM".
>
> e.target
Dobra, zostawmy to.
>
> Ile razy można to powtarzać? To jest jednoznaczne wskazanie elementu. I
> zburzę Ci teraz wizję świata: ID w HTML wcale nie musi być unikalne.
>
Wiem o tym. I co z tego?
> > Właśnie to miałem na myśli pisząc "jeśli zrozumiesz". Widzę ze nie zrozumiałeś. Trochę tu za mało miejsca na przedstawienie idei tego kodu, ale w innym miejscu chętnie Ci wyjaśnię (emailowo?).
> > Niechcący przytoczyłeś sedno :D
>
> Tu nie ma nic do rozumienia, bo to jest dramat. Kompletnie nieprzejrzysty,
> praktycznie niemożliwy do utrzymania kod, który rozumie tylko jedna osoba.
> A najgorsze jest to, że tego nie widzisz i jeszcze próbujesz przekuć w
> zaletę.
>
Ech, chyba dramat dla Ciebie bo nie wiesz co się dzieje.
Dobra, opiszę to pokrótce, aczkolwiek będzie to trochę wyrwane z kontekstu.
Procedura FillBuf()doskonale hermetyzuje czynności typowe w komunikacji z serwerem. Co robi?
Wytłumaczę krok po kroku.
FillBuf(n,
<- tu n to identyfikator klikniętego obiektu, coś jak Sender w odClick Delphi czy C
FillBuf(n, ['id1', 'id2',...]
<- tablica identyfikatorów obiektów z których mają być pobrane wartości. W zależności od typu będzie to wartość text, checked, innerHTML itp. Można również podać jako element tablicy "id3.bla' wówczas będzie to własność 'bla' alementu
FillBuf(n, ['id1', 'id2',...], ['x', 5, ...]
<- dodatkowa tablica dowolnych wartości np. wyliczeniowych
Funkcja wysyła te dane na serwer...
FillBuf(n, ['id1', 'id2',...], ['x', 5, ...], 'divx'
parametr 'divx' to identyfikator obiektu (najczęściej będzie to div) którego zawartość (tu: innerHTML) ma zostać wypełniona treścią zwróconą przez serwer.
Oczywiście może nie być podany, jeśli dane mają służyć do czegoś innego.
Jeżeli jest to np. div do wypełnienia to na czas komunikacji z serwerem procedura fillBuf wstawi tam kręciołek zajętości (gif)
FillBuf(n, ['id1', 'id2',...], ['x', 5, ...], 'divx', function(buf){})
<- jeżeli zostanie zdefiniowana funkcja jako kolejny parametr to w jej parametrze buf otrzyma to co zwrócił serwer, może przetworzyć to dowolnie.
Tak więc jak widzisz, mam opakowaną komunikację z serwerem, pobieranie danych z kontrolek i innych obiektów i wszystko to tylko jednej procedury!
Na serwerze jest to również odpowiednio zhermetyzowane.
> > Ależ wiem, co nie oznacza, że nie jest to właśnie tablica asocjacyjna.
> > Inaczej mówiąc: własności obiektu stanowią tablicę asocjacyjną i jako taką można wykorzystać.
>
> Nie próbuj się tłumaczyć. Zrobiłeś z tego wielkie odkrycie, bo nie
> rozumiesz podstaw. Nawet ze zwykłej iteracji po własnościach obiektu robisz
> tam wiedzę tajemną (btw, ten kod nie jest poprawny).
Nie jest poprawny? Nie zadziała?
>
> --
> Borys Pogoreło
> borys(#)leszno,edu,pl
Paweł
Technical Details
Message-ID:
<a5baba47-e7b1-4067-8f0d-ecccfe375476@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!w142no742405ita.0!news-out.google.com!a25ni1843itj.0!nntp.google.com!w142no742400ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<5a8d1d93$0$674$65785112@news.neostrada.pl> <b7c28b16-9101-4f3f-841e-3255717e3017@googlegroups.com> <148vihvftubia.1e9gxiae9fy4p.dlg@40tude.net> <e4b021b8-9de9-450b-a7b8-7cbf450f6719@googlegroups.com> <1qn3p672u6yl5.1585lwp0arhbr.dlg@40tude.net> <1b368637-7199-4b74-85d2-5a359e6666e0@googlegroups.com> <15dvc5ead1h2c.cg8ko59kdlzt$.dlg@40tude.net> <246a73c9-8dc7-4ee0-946e-885933c13103@googlegroups.com> <27t8tt1m96wu.11hqw4vglcdjq.dlg@40tude.net> <d4de74d5-ae29-4205-acd7-096434f0e227@googlegroups.com> <11hsdnx36lvz3.sjxote5c1628.dlg@40tude.net> <f323afc1-4b40-449a-a09e-47e042286a28@googlegroups.com> <2762d7f6-99fd-4697-b267-dc1ce7a9fe24@googlegroups.com> <18glwbnoogv4i$.ob1q7xeh9yly$.dlg@40tude.net> <3c1ede4e-1fb8-4574-9e6a-429e512643db@googlegroups.com> <1ekeb91h9bvln$.mmvu0slmr0h3$.dlg@40tude.net> <aa018e4f-40a5-478d-a4d9-2046b62a4745@googlegroups.com> <1er8w9haivbcf$.1602yifr4w3cv.dlg@40tude.net> <8798fb76-76a4-4794-b34b-5da0c4df9e5a@googlegroups.com> <wxlhxhmn42me.1cew5dloz6okt$.dlg@40tude.net>Show Full Headers
Complete Article Headers
X-Received: by 10.107.82.5 with SMTP id g5mr6712715iob.101.1520095189224; Sat, 03 Mar 2018 08:39:49 -0800 (PST) X-Received: by 10.157.96.5 with SMTP id h5mr461747otj.14.1520095188929; Sat, 03 Mar 2018 08:39:48 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!w142no742405ita.0!news-out.google.com!a25ni1843itj.0!nntp.google.com!w142no742400ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.javascript Date: Sat, 3 Mar 2018 08:39:48 -0800 (PST) In-Reply-To: <wxlhxhmn42me.1cew5dloz6okt$.dlg@40tude.net> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=217.99.247.215; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q NNTP-Posting-Host: 217.99.247.215 References: <5a8d1d93$0$674$65785112@news.neostrada.pl> <b7c28b16-9101-4f3f-841e-3255717e3017@googlegroups.com> <148vihvftubia.1e9gxiae9fy4p.dlg@40tude.net> <e4b021b8-9de9-450b-a7b8-7cbf450f6719@googlegroups.com> <1qn3p672u6yl5.1585lwp0arhbr.dlg@40tude.net> <1b368637-7199-4b74-85d2-5a359e6666e0@googlegroups.com> <15dvc5ead1h2c.cg8ko59kdlzt$.dlg@40tude.net> <246a73c9-8dc7-4ee0-946e-885933c13103@googlegroups.com> <27t8tt1m96wu.11hqw4vglcdjq.dlg@40tude.net> <d4de74d5-ae29-4205-acd7-096434f0e227@googlegroups.com> <11hsdnx36lvz3.sjxote5c1628.dlg@40tude.net> <f323afc1-4b40-449a-a09e-47e042286a28@googlegroups.com> <2762d7f6-99fd-4697-b267-dc1ce7a9fe24@googlegroups.com> <18glwbnoogv4i$.ob1q7xeh9yly$.dlg@40tude.net> <3c1ede4e-1fb8-4574-9e6a-429e512643db@googlegroups.com> <1ekeb91h9bvln$.mmvu0slmr0h3$.dlg@40tude.net> <aa018e4f-40a5-478d-a4d9-2046b62a4745@googlegroups.com> <1er8w9haivbcf$.1602yifr4w3cv.dlg@40tude.net> <8798fb76-76a4-4794-b34b-5da0c4df9e5a@googlegroups.com> <wxlhxhmn42me.1cew5dloz6okt$.dlg@40tude.net> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <a5baba47-e7b1-4067-8f0d-ecccfe375476@googlegroups.com> Subject: Re: Argument funkcji From: zpksoft <zpksoft@op.pl> Injection-Date: Sat, 03 Mar 2018 16:39:49 +0000 X-Received-Bytes: 6090 X-Received-Body-CRC: 4292490450 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit