🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51864

Re: Argument funkcji

#51864
From: zpksoft
Date: Sat, 03 Mar 2018 16:39
78 lines
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-mail
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>

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