🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
65 messages
65 total messages Page 1 of 2 Started by "konsul41@wp.pl" Wed, 21 Feb 2018 08:19
Page 1 of 2 • 65 total messages
Argument funkcji
#50321
Author: "konsul41@wp.pl"
Date: Wed, 21 Feb 2018 08:19
26 lines
712 bytes

Jest sobie funkcja
var set_hist_back_html = function ( tekst ) {
     document.getElementById("hist_back").innerHTML = tekst;
   };


następnie w jednym z div jest takie coś

<input type="image" src="png/if_edit-user_46799.png"
   <input type="image" src="png/if_back.png"
listakontrahentow.php?ID=1\');"  title="Do
tyłu"   alt="Do tyłu"> </td>');


   "       title="Edytuj dane kontrahenta." alt="lista">


Pytanie jak prawidłowo wpisać tekst
'<input type="image" src="png/if_back.png"
listakontrahentow.php?ID=1\');"  title="Do
tyłu"   alt="Do tyłu"> </td>'

Jako argument funkcji set_hist_back_html
Re: Argument funkcji
#50325
Author: zpksoft
Date: Wed, 21 Feb 2018 05:06
41 lines
1242 bytes
W dniu środa, 21 lutego 2018 08:19:50 UTC+1 użytkownik kons...@wp.pl napisał:
> Jest sobie funkcja
> var set_hist_back_html = function ( tekst ) {
>      document.getElementById("hist_back").innerHTML = tekst;
>    };
> 
> 
> następnie w jednym z div jest takie coś
> 
> <input type="image" src="png/if_edit-user_46799.png"
>    onclick=
>    "
>     set_hist_back_html('<input type="image" src="png/if_back.png" 
> onclick="zaladuj_main_body(\'listakontrahentow.php?ID=1\');"  title="Do 
> tyłu"   alt="Do tyłu"> </td>');
> 
> 
>    "       title="Edytuj dane kontrahenta." alt="lista">
> 
> 
> Pytanie jak prawidłowo wpisać tekst
> '<input type="image" src="png/if_back.png" 
> onclick="zaladuj_main_body(\'listakontrahentow.php?ID=1\');"  title="Do 
> tyłu"   alt="Do tyłu"> </td>'
> 
> Jako argument funkcji set_hist_back_html

//załaduj ciąg do zmiennej

var par='<input type="image" src="png/if_back.png" 
 onclick="zaladuj_main_body(\'listakontrahentow.php?ID=1\');"  title="Do 
 tyłu"   alt="Do tyłu"> </td>';

//a następnie: 

set_hist_back_html(par);

Paweł
Re: Argument funkcji
#50326
Author: zpksoft
Date: Wed, 21 Feb 2018 05:13
35 lines
1147 bytes
W dniu środa, 21 lutego 2018 08:19:50 UTC+1 użytkownik kons...@wp.pl napisał:
> Jest sobie funkcja
> var set_hist_back_html = function ( tekst ) {
>      document.getElementById("hist_back").innerHTML = tekst;
>    };
> 
> 
> następnie w jednym z div jest takie coś
> 
> <input type="image" src="png/if_edit-user_46799.png"
>    onclick=
>    "
>     set_hist_back_html('<input type="image" src="png/if_back.png" 
> onclick="zaladuj_main_body(\'listakontrahentow.php?ID=1\');"  title="Do 
> tyłu"   alt="Do tyłu"> </td>');
> 
> 
>    "       title="Edytuj dane kontrahenta." alt="lista">
> 
> 
> Pytanie jak prawidłowo wpisać tekst
> '<input type="image" src="png/if_back.png" 
> onclick="zaladuj_main_body(\'listakontrahentow.php?ID=1\');"  title="Do 
> tyłu"   alt="Do tyłu"> </td>'
> 
> Jako argument funkcji set_hist_back_html

Napisałem na szybko, nie zapomnij wyłączyć znaki specjalne jak apostrofy wewnątrz łańcucha:

https://4programmers.net/JavaScript/Obiekty/String

Paweł
Re: Argument funkcji
#50327
Author: zpksoft
Date: Wed, 21 Feb 2018 09:22
37 lines
1392 bytes
W dniu środa, 21 lutego 2018 09:28:50 UTC+1 użytkownik kons...@wp.pl napisał:
> Zrobiłem tak
> '<input type=image src=png/if_back.png 
> onclick=zaladuj_main_body(\'listakontrahentow.php?ID=1\');  title=Do 
> tyłu   alt=Do tyłu> </td>'
> 
> działa w Chrome i IE tylko czy to jest prawidłowe
> Najlepsze że w źródle strony widzę tekst ze znakami "

Jeśli miałbym Ci doradzić to generalnie kod jest zawikłany a przez to słaby. Ja to robię tak. Użyj skryptu w head html a w nim pętlę:

document.onclick = function(e){
  var t, n;
    e = e || window.event;
    var t = e.target || e.srcElement; //odporne na stare IE
    n=t.id; //n to id klikniętego elementu

  if (n=='if_edit'){
    //tu odpowiedni kod
}
  else if (n=='if_back') {
  //tu odpowiedni kod..
} else .. <- tu obsłużysz kolejne kliki

}

itd. W html nie będziesz miał żadnych onClicków, zwięzły i czytelny kod. Tylko musisz nadać id elementom których kliknięcia chcesz obsłużyć.
Zauważ że podobnie działa aplikacja desktopowa. W pętli komunikatów wywoływane są odpowiednie procedury ich obsługi, jeśli zostały zdefiniowane,

Paweł
Re: Argument funkcji
#50322
Author: "konsul41@wp.pl"
Date: Wed, 21 Feb 2018 09:28
6 lines
266 bytes
Zrobiłem tak
'<input type=image src=png/if_back.png
onclick=zaladuj_main_body(\'listakontrahentow.php?ID=1\');  title=Do
tyłu   alt=Do tyłu> </td>'

działa w Chrome i IE tylko czy to jest prawidłowe
Najlepsze że w źródle strony widzę tekst ze znakami "
Re: Argument funkcji
#50323
Author: Roman Tyczka
Date: Wed, 21 Feb 2018 10:52
15 lines
492 bytes
On Wed, 21 Feb 2018 09:28:53 +0100, konsul41@wp.pl wrote:

> Zrobiłem tak
> '<input type=image src=png/if_back.png
> onclick=zaladuj_main_body(\'listakontrahentow.php?ID=1\');  title=Do
> tyłu   alt=Do tyłu> </td>'
>
> działa w Chrome i IE tylko czy to jest prawidłowe
> Najlepsze że w źródle strony widzę tekst ze znakami "

Naprawdę nie widzisz, że ta grupa zdechła?
Troszę życia, także w temacie JS, jest obecnie na grupie ok.comp.lang.php

--
pozdrawiam
Roman Tyczka
Re: Argument funkcji
#50324
Author: "konsul41@wp.pl"
Date: Wed, 21 Feb 2018 11:00
14 lines
610 bytes
W dniu 21-02-2018 o 10:52, Roman Tyczka pisze:
> On Wed, 21 Feb 2018 09:28:53 +0100, konsul41@wp.pl wrote:
>
>> Zrobiłem tak
>> '<input type=image src=png/if_back.png
>> onclick=zaladuj_main_body(\'listakontrahentow.php?ID=1\');  title=Do
>> tyłu   alt=Do tyłu> </td>'
>>
>> działa w Chrome i IE tylko czy to jest prawidłowe
>> Najlepsze że w źródle strony widzę tekst ze znakami "
>
> Naprawdę nie widzisz, że ta grupa zdechła?
> Troszę życia, także w temacie JS, jest obecnie na grupie ok.comp.lang.php
>
W zasadzie wszystkie padają dlatego trudno się zorientować która już padła.
Re: Argument funkcji
#50328
Author: Cezary Tomczyk
Date: Mon, 26 Feb 2018 22:10
23 lines
907 bytes
On 21/02/2018 11:00, konsul41@wp.pl wrote:
> W dniu 21-02-2018 o 10:52, Roman Tyczka pisze:
>> On Wed, 21 Feb 2018 09:28:53 +0100, konsul41@wp.pl wrote:
>>
>>> Zrobiłem tak
>>> '<input type=image src=png/if_back.png
>>> onclick=zaladuj_main_body(\'listakontrahentow.php?ID=1\');  title=Do
>>> tyłu   alt=Do tyłu> </td>'
>>>
>>> działa w Chrome i IE tylko czy to jest prawidłowe
>>> Najlepsze że w źródle strony widzę tekst ze znakami "
>>
>> Naprawdę nie widzisz, że ta grupa zdechła?
>> Troszę życia, także w temacie JS, jest obecnie na grupie ok.comp.lang.php
>>
> W zasadzie wszystkie padają dlatego trudno się zorientować która już padła.

Grupa nie padła. Ot, nieco mniejsza aktywność, niż kiedyś ;-)

--
Cezary Tomczyk
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
https://www.aslint.org/ - Accessibility validator tool
Re: Argument funkcji
#50329
Author: zpksoft
Date: Tue, 27 Feb 2018 05:10
32 lines
1137 bytes
W dniu poniedziałek, 26 lutego 2018 22:10:13 UTC+1 użytkownik Cezary Tomczyk napisał:
> On 21/02/2018 11:00, -- wrote:
> > W dniu 21-02-2018 o 10:52, Roman Tyczka pisze:
> >> On Wed, 21 Feb 2018 09:28:53 +0100, konsul41@wp.pl wrote:
> >>
> >>> Zrobiłem tak
> >>> '<input type=image src=png/if_back.png
> >>> onclick=zaladuj_main_body(\'listakontrahentow.php?ID=1\');  title=Do
> >>> tyłu   alt=Do tyłu> </td>'
> >>>
> >>> działa w Chrome i IE tylko czy to jest prawidłowe
> >>> Najlepsze że w źródle strony widzę tekst ze znakami "
> >>
> >> Naprawdę nie widzisz, że ta grupa zdechła?
> >> Troszę życia, także w temacie JS, jest obecnie na grupie ok.comp.lang.php
> >>
> > W zasadzie wszystkie padają dlatego trudno się zorientować która już padła.
> 
> Grupa nie padła. Ot, nieco mniejsza aktywność, niż kiedyś ;-)
> 
> -- 
> Cezary Tomczyk

Tak, wszyscy wszystko wiedzą więc po co gadać po próżnicy ;)

Paweł
Re: Argument funkcji
#50330
Author: Borys =?utf-8?Q?
Date: Tue, 27 Feb 2018 22:18
9 lines
325 bytes
Dnia Wed, 21 Feb 2018 09:22:53 -0800 (PST), zpksoft napisał(a):

> itd. W html nie będziesz miał żadnych onClicków, zwięzły i czytelny kod.

Raczej antytezę zwięzłego i czytelnego kodu. 50 ifów jeden po drugim to
jest materiał na thedailywtf.com, a nie poradę w sieci.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50331
Author: zpksoft
Date: Wed, 28 Feb 2018 04:53
28 lines
1135 bytes
W dniu wtorek, 27 lutego 2018 22:19:15 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Wed, 21 Feb 2018 09:22:53 -0800 (PST), zpksoft napisał(a):
> 
> > itd. W html nie będziesz miał żadnych onClicków, zwięzły i czytelny kod. 
> 
> Raczej antytezę zwięzłego i czytelnego kodu. 50 ifów jeden po drugim to
> jest materiał na thedailywtf.com, a nie poradę w sieci.
> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

50 ifów? Dlaczego aż tyle? Piszesz aż tak złożone aplikacje na przeglądarkę? Wątpię.

Nawet gdyby, to podałem tylko schemat który łatwo podzielić na segmenty a nawet oddzielne pliki js. Uważam że to słuszna droga. Tak piszę swoje aplikacje przeglądarkowe. Bardzo łatwo utrzymać taki kod. Znacznie łatwiej niż gdyby rozsiać onkliki po obiektach a te na dokładkę tworzyć dynamicznie...
Nikt się w tym nie połapie, nawet twórca po jakimś czasie :)


Paweł
Re: Argument funkcji
#50332
Author: Borys =?utf-8?Q?
Date: Thu, 01 Mar 2018 00:45
32 lines
1368 bytes
Dnia Wed, 28 Feb 2018 04:53:03 -0800 (PST), zpksoft napisał(a):

>> Raczej antytezę zwięzłego i czytelnego kodu. 50 ifów jeden po drugim to
>> jest materiał na thedailywtf.com, a nie poradę w sieci.
>
> 50 ifów? Dlaczego aż tyle? Piszesz aż tak złożone aplikacje na przeglądarkę? Wątpię.

Wystarczy, że masz prostego datagrida z 50 wierszami. W tym rozwiązaniu
potrzebujesz każdemu nadać osobne ID i osobno obsłużyć. I jeszcze
przypadkiem nie dać możliwości zmiany liczby wierszy, bo się wszystko
posypie.

> Nawet gdyby, to podałem tylko schemat który łatwo podzielić na segmenty a
> nawet oddzielne pliki js. Uważam że to słuszna droga.

To jest dramat, nie słuszna droga. Ścisłe powiązanie kodu JS ze strukturą
dokumentu całkowicie przekreśla jakąkolwiek elastyczność tego rozwiązania i
łatwość w utrzymaniu.

Ale myśmy juz kiedyś ustalili, że frameworki są zbędne, a wynajdywanie koła
na nowo jest świetnym ćwiczeniem dydaktycznym.

> Bardzo łatwo utrzymać taki kod. Znacznie łatwiej niż gdyby rozsiać
> onkliki po obiektach a te na dokładkę tworzyć dynamicznie...

Wiadomo, cały świat tak robi, by sobie utrudniać życie.

Do obsługi dynamicznie tworzonych obiektów wystaczy podpiąć event listener
do najbliższego sensownego obiektu nadrzędnego.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50333
Author: Adam M
Date: Thu, 01 Mar 2018 07:01
53 lines
2180 bytes
On Wednesday, February 28, 2018 at 6:46:05 PM UTC-5, Borys Pogoreło wrote:
> Dnia Wed, 28 Feb 2018 04:53:03 -0800 (PST), zpksoft napisał(a):
> 
> >> Raczej antytezę zwięzłego i czytelnego kodu. 50 ifów jeden po drugim to
> >> jest materiał na thedailywtf.com, a nie poradę w sieci.
> > 
> > 50 ifów? Dlaczego aż tyle? Piszesz aż tak złożone aplikacje na przeglądarkę? Wątpię.
> 
> Wystarczy, że masz prostego datagrida z 50 wierszami. W tym rozwiązaniu
> potrzebujesz każdemu nadać osobne ID i osobno obsłużyć. I jeszcze
> przypadkiem nie dać możliwości zmiany liczby wierszy, bo się wszystko
> posypie.
> 
> > Nawet gdyby, to podałem tylko schemat który łatwo podzielić na segmenty a
> > nawet oddzielne pliki js. Uważam że to słuszna droga. 
> 
> To jest dramat, nie słuszna droga. Ścisłe powiązanie kodu JS ze strukturą
> dokumentu całkowicie przekreśla jakąkolwiek elastyczność tego rozwiązania i
> łatwość w utrzymaniu.
> 
> Ale myśmy juz kiedyś ustalili, że frameworki są zbędne, a wynajdywanie koła
> na nowo jest świetnym ćwiczeniem dydaktycznym.
> 
> > Bardzo łatwo utrzymać taki kod. Znacznie łatwiej niż gdyby rozsiać
> > onkliki po obiektach a te na dokładkę tworzyć dynamicznie...
> 
> Wiadomo, cały świat tak robi, by sobie utrudniać życie.
> 
> Do obsługi dynamicznie tworzonych obiektów wystaczy podpiąć event listener
> do najbliższego sensownego obiektu nadrzędnego.
> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Zgadzam sie w 100%. Pisanie czegos od zera w JavaScript to czysty masochizm i proszenie sie o klopoty w przyszlosci (no chyba ze caly kod w JavaSript ma 50-100 LOC). Lepiej zdecydowac sie naa jeden ugruntowany i dobrze wspierany framework lub jesli ktos calkowicie nie lubi JavaScript uzyc GWT lub TeaVM.
Re: Argument funkcji
#50334
Author: zpksoft
Date: Thu, 01 Mar 2018 07:08
59 lines
2022 bytes
W dniu czwartek, 1 marca 2018 00:46:05 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Wed, 28 Feb 2018 04:53:03 -0800 (PST), zpksoft napisał(a):
> 
> >> Raczej antytezę zwięzłego i czytelnego kodu. 50 ifów jeden po drugim to
> >> jest materiał na thedailywtf.com, a nie poradę w sieci.
> > 
> > 50 ifów? Dlaczego aż tyle? Piszesz aż tak złożone aplikacje na przeglądarkę? Wątpię.
> 
> Wystarczy, że masz prostego datagrida z 50 wierszami. W tym rozwiązaniu
> potrzebujesz każdemu nadać osobne ID i osobno obsłużyć. I jeszcze
> przypadkiem nie dać możliwości zmiany liczby wierszy, bo się wszystko
> posypie.

To proste. Wystarczy tu jeden if i id w stylu "db_idrek". W if wyłapujemy "db"

> 
> > Nawet gdyby, to podałem tylko schemat który łatwo podzielić na segmenty a
> > nawet oddzielne pliki js. Uważam że to słuszna droga. 
> 
> To jest dramat, nie słuszna droga. Ścisłe powiązanie kodu JS ze strukturą
> dokumentu całkowicie przekreśla jakąkolwiek elastyczność tego rozwiązania i
> łatwość w utrzymaniu.
> 
> Ale myśmy juz kiedyś ustalili, że frameworki są zbędne, a wynajdywanie koła
> na nowo jest świetnym ćwiczeniem dydaktycznym.

dyrdymały

> 
> > Bardzo łatwo utrzymać taki kod. Znacznie łatwiej niż gdyby rozsiać
> > onkliki po obiektach a te na dokładkę tworzyć dynamicznie...
> 
> Wiadomo, cały świat tak robi, by sobie utrudniać życie.
> 
> Do obsługi dynamicznie tworzonych obiektów wystaczy podpiąć event listener
> do najbliższego sensownego obiektu nadrzędnego.
> 

i co to ułatwia?

> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50336
Author: zpksoft
Date: Thu, 01 Mar 2018 12:34
57 lines
2040 bytes
W dniu czwartek, 1 marca 2018 20:19:02 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Thu, 1 Mar 2018 07:08:58 -0800 (PST), zpksoft napisał(a):
> 
> >> Wystarczy, że masz prostego datagrida z 50 wierszami. W tym rozwiązaniu
> >> potrzebujesz każdemu nadać osobne ID i osobno obsłużyć. I jeszcze
> >> przypadkiem nie dać możliwości zmiany liczby wierszy, bo się wszystko
> >> posypie.
> > 
> > To proste. Wystarczy tu jeden if i id w stylu "db_idrek". W if wyłapujemy "db"
> 
> Coraz lepsze masz pomysły na łatanie chybionego z założenia pomysłu.
> 
> Nie prościej zrobić $datagrid.on('click', 'tr.row', function(e) { })
> zamiast tworzyć rzeźbę z kodowaniem rodzaju danych w identyfikatorze?
> 

a co to jest 'tr.row'?

> >> Do obsługi dynamicznie tworzonych obiektów wystaczy podpiąć event listener
> >> do najbliższego sensownego obiektu nadrzędnego.
> > 
> > i co to ułatwia?
> 
> Organizuje kontrolę zdarzeń w miejscach, których one logicznie dotyczą,
> zamiast tworzenia gospodarki centralnie sterowanej. Kod JS nie musi mieć
> żadnego związku z HTML-em poza znajomością struktury, a nie każdego
> pojedynczego atrybutu. I taki przykładowy datagrid można bez problemu
> oddzielić od reszty aplikacji, a nie żmudnie wyłuskiwać z wielkiego
> galimatiasu skryptów.

Jeżeli aplikacja jest zmienna w sensie zmian zawartości interfejsu to trudno czymś takim zarządzać. Załóżmy, że wcześniej w miejscu tego datagrid był inny obiekt którego kliknięcie cośtam robiło. No i jak to przeanalizować gdy raptem znika w pewnym momencie zarówno obiekt jak i logika która go dotyczy?
 

> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50338
Author: zpksoft
Date: Thu, 01 Mar 2018 14:03
50 lines
1643 bytes
W dniu czwartek, 1 marca 2018 22:50:44 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Thu, 1 Mar 2018 12:34:59 -0800 (PST), zpksoft napisał(a):
> 
> >> Coraz lepsze masz pomysły na łatanie chybionego z założenia pomysłu.
> >> 
> >> Nie prościej zrobić $datagrid.on('click', 'tr.row', function(e) { })
> >> zamiast tworzyć rzeźbę z kodowaniem rodzaju danych w identyfikatorze?
> > 
> > a co to jest 'tr.row'?
> 
> Przykład. Tutaj wiersz datagrida.

Jeżeli pewien wiersz jest identyfikowany przez ciąg 'tr.row' ta jak jest identyfikowany kolejny?

> 
> > Jeżeli aplikacja jest zmienna w sensie zmian zawartości interfejsu to
> > trudno czymś takim zarządzać. 
> 
> Przy kodowaniu identyfikatorów na twardo jak najbardziej. Reszta świata
> odpina stary nadrzędny event listener i podpina nowy.
> 

Po co podpinać nowy? Kupa roboty i kodu. I nie zasłaniaj się resztą świata. Pisz za siebie.

> > Załóżmy, że wcześniej w miejscu tego datagrid był inny obiekt którego
> > kliknięcie cośtam robiło. No i jak to przeanalizować gdy raptem znika w
> > pewnym momencie zarówno obiekt jak i logika która go dotyczy?
> 
> Bardzo prosto. Datagrid sobie obsługiwał swoje eventy, które nie
> bąbelkowały wyżej do Centralnego Biura Zarządzania Zdarzeniami.
> 

Nie zrozumiałeś pytania. 

> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50335
Author: Borys =?utf-8?Q?
Date: Thu, 01 Mar 2018 20:22
28 lines
1202 bytes
Dnia Thu, 1 Mar 2018 07:08:58 -0800 (PST), zpksoft napisał(a):

>> Wystarczy, że masz prostego datagrida z 50 wierszami. W tym rozwiązaniu
>> potrzebujesz każdemu nadać osobne ID i osobno obsłużyć. I jeszcze
>> przypadkiem nie dać możliwości zmiany liczby wierszy, bo się wszystko
>> posypie.
>
> To proste. Wystarczy tu jeden if i id w stylu "db_idrek". W if wyłapujemy "db"

Coraz lepsze masz pomysły na łatanie chybionego z założenia pomysłu.

Nie prościej zrobić $datagrid.on('click', 'tr.row', function(e) { })
zamiast tworzyć rzeźbę z kodowaniem rodzaju danych w identyfikatorze?

>> Do obsługi dynamicznie tworzonych obiektów wystaczy podpiąć event listener
>> do najbliższego sensownego obiektu nadrzędnego.
>
> i co to ułatwia?

Organizuje kontrolę zdarzeń w miejscach, których one logicznie dotyczą,
zamiast tworzenia gospodarki centralnie sterowanej. Kod JS nie musi mieć
żadnego związku z HTML-em poza znajomością struktury, a nie każdego
pojedynczego atrybutu. I taki przykładowy datagrid można bez problemu
oddzielić od reszty aplikacji, a nie żmudnie wyłuskiwać z wielkiego
galimatiasu skryptów.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50337
Author: Borys =?utf-8?Q?
Date: Thu, 01 Mar 2018 22:53
26 lines
1004 bytes
Dnia Thu, 1 Mar 2018 12:34:59 -0800 (PST), zpksoft napisał(a):

>> Coraz lepsze masz pomysły na łatanie chybionego z założenia pomysłu.
>>
>> Nie prościej zrobić $datagrid.on('click', 'tr.row', function(e) { })
>> zamiast tworzyć rzeźbę z kodowaniem rodzaju danych w identyfikatorze?
>
> a co to jest 'tr.row'?

Przykład. Tutaj wiersz datagrida.

> Jeżeli aplikacja jest zmienna w sensie zmian zawartości interfejsu to
> trudno czymś takim zarządzać.

Przy kodowaniu identyfikatorów na twardo jak najbardziej. Reszta świata
odpina stary nadrzędny event listener i podpina nowy.

> Załóżmy, że wcześniej w miejscu tego datagrid był inny obiekt którego
> kliknięcie cośtam robiło. No i jak to przeanalizować gdy raptem znika w
> pewnym momencie zarówno obiekt jak i logika która go dotyczy?

Bardzo prosto. Datagrid sobie obsługiwał swoje eventy, które nie
bąbelkowały wyżej do Centralnego Biura Zarządzania Zdarzeniami.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50339
Author: Wojciech Bancer
Date: Thu, 01 Mar 2018 23:13
11 lines
248 bytes
On 2018-03-01, zpksoft <zpksoft@op.pl> wrote:

[...]

>> Przyk³ad. Tutaj wiersz datagrida.
> Je¿eli pewien wiersz jest identyfikowany przez ci±g 'tr.row' ta jak jest identyfikowany kolejny?

<p³aku> :D

--
Wojciech Bañcer
wojciech.bancer@gmail.com
Re: Argument funkcji
#50340
Author: Borys =?utf-8?Q?
Date: Thu, 01 Mar 2018 23:40
26 lines
880 bytes
Dnia Thu, 1 Mar 2018 14:03:13 -0800 (PST), zpksoft napisał(a):

>> Przykład. Tutaj wiersz datagrida.
>
> Jeżeli pewien wiersz jest identyfikowany przez ciąg 'tr.row' ta jak jest identyfikowany kolejny?

Bierzesz sobie e.target i robisz z tym, co tylko chcesz. Np.
e.target.nextSibling, tudzież $(e.target).next() czy jak tam komu wygodnie.

>> Przy kodowaniu identyfikatorów na twardo jak najbardziej. Reszta świata
>> odpina stary nadrzędny event listener i podpina nowy.
>
> Po co podpinać nowy? Kupa roboty i kodu. I nie zasłaniaj się resztą świata. Pisz za siebie.

datagrid.removeEventListener('click', staryhandler);
datagrid.addEventListener('click', nowyhandler);

No fakt, kupa roboty i kodu.

> Nie zrozumiałeś pytania.

Widocznie źle je zadałeś. Co chcesz analizować i w czym przeszkadza, że
zniknęło?

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50341
Author: zpksoft
Date: Fri, 02 Mar 2018 00:08
22 lines
720 bytes
W dniu czwartek, 1 marca 2018 23:37:39 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Thu, 1 Mar 2018 14:03:13 -0800 (PST), zpksoft napisał(a):
> 
> >> Przykład. Tutaj wiersz datagrida.
> > 
> > Jeżeli pewien wiersz jest identyfikowany przez ciąg 'tr.row' ta jak jest identyfikowany kolejny?
> 
> Bierzesz sobie e.target i robisz z tym, co tylko chcesz. Np.
> e.target.nextSibling, tudzież $(e.target).next() czy jak tam komu wygodnie.

Nadal nie odpowiedziałeś na moje pytanie: jak jest identyfikowany row. nextSibling() czy next() to są tylko funkcje. Co one odczytują?

> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50342
Author: zpksoft
Date: Fri, 02 Mar 2018 00:14
35 lines
1425 bytes
W dniu piątek, 2 marca 2018 09:08:59 UTC+1 użytkownik zpksoft napisał:
> W dniu czwartek, 1 marca 2018 23:37:39 UTC+1 użytkownik Borys Pogoreło napisał:
> > Dnia Thu, 1 Mar 2018 14:03:13 -0800 (PST), zpksoft napisał(a):
> > 
> > >> Przykład. Tutaj wiersz datagrida.
> > > 
> > > Jeżeli pewien wiersz jest identyfikowany przez ciąg 'tr.row' ta jak jest identyfikowany kolejny?
> > 
> > Bierzesz sobie e.target i robisz z tym, co tylko chcesz. Np.
> > e.target.nextSibling, tudzież $(e.target).next() czy jak tam komu wygodnie.
> 
> Nadal nie odpowiedziałeś na moje pytanie: jak jest identyfikowany row. nextSibling() czy next() to są tylko funkcje. Co one odczytują?
> 
> > 
> > -- 
> > Borys Pogoreło
> > borys(#)leszno,edu,pl
> 
> Paweł

Właściwie to był zły przykład. Bo obiekt może pamiętać id aktywnego rekordu i na tej podstawie łatwo mu podać kolejny-poprzedni. Weźmy coś innego: user klika dowolny wiersz. Jak odczytujesz jego id? Po czym? I żeby uprzedzić Twoją odpowiedź: nie chodzi mi o odpowiedź typu grid.currentClicked() czy coś w tym stylu. Tak jak napisałem: PO CZYM odczytywany jest id? Bo według ciebie nie jest przecież pamiętany dla każdego wiersza ...

Paweł
Re: Argument funkcji
#50344
Author: zpksoft
Date: Fri, 02 Mar 2018 04:45
45 lines
1927 bytes
W dniu piątek, 2 marca 2018 12:42:57 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Fri, 2 Mar 2018 00:14:59 -0800 (PST), zpksoft napisał(a):
> 
> > Właściwie to był zły przykład. Bo obiekt może pamiętać id aktywnego
> > rekordu i na tej podstawie łatwo mu podać kolejny-poprzedni. Weźmy coś
> > innego: user klika dowolny wiersz. Jak odczytujesz jego id? Po czym? 
> 
> Ale PO CO mi jego ID? To Ty się uparłeś, by wszystko miało swoje ID, bo
> najwyraźniej nie potrafisz inaczej się odwołać do obiektu. A można to
> zrobić na wiele sposobów, z których ID jest akurat najmniej praktyczny i z
> reguły zupełnie zbędny. Lecz jeśli koniecznie go potrzebujesz, to wystarczy
> sięgnąć do e.target.id / e.target.nextSibling.id.

Wykręcasz się jak możesz. oczywiście że można na kilka sposobów identyfikować obiekt. Ale... jeśli go nie oznaczysz to również nie obsłużysz. 
Zarzuciłeś mi, że indeksowanie jest be a teraz piszesz o e.target.id.
Generalnie miotasz się w swoich przeświadczeniach i widzimisiach które wytworzyłeś sobie pewnie przed laty i używasz po to żeby zarzucać innym niepoprawność myślową bo niezgodną z twoją.

> 
> Polecam zapoznanie się z modelem DOM i hierarchią obiektów. Oraz z obsługą
> zdarzeń. I generalnie z dokumentacją JavaScriptu, bo chyba tu leży problem.

No, no. 
Problem leży gdzie indziej. Głównie w twoim przeświadczeniu że bez obcego "frameworku" nie da się programować. 

> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50345
Author: irq
Date: Fri, 02 Mar 2018 05:22
34 lines
1624 bytes
W dniu piątek, 2 marca 2018 13:45:26 UTC+1 użytkownik zpksoft napisał:
> W dniu piątek, 2 marca 2018 12:42:57 UTC+1 użytkownik Borys Pogoreło napisał:
> > Lecz jeśli koniecznie go potrzebujesz, to wystarczy
> > sięgnąć do e.target.id / e.target.nextSibling.id.
> 
> Wykręcasz się jak możesz. oczywiście że można na kilka sposobów identyfikować obiekt. Ale... jeśli go nie oznaczysz to również nie obsłużysz. 

obiekt jest dostępny jako e.target (https://www.w3schools.com/jsref/event_target.asp). Cóż więcej trzeba żeby go obsłużyć? Czyżby wykonać getElementById(e.target.id) ?

> Zarzuciłeś mi, że indeksowanie jest be a teraz piszesz o e.target.id.

kolega wyraźnie zastrzegł powyżej, że skoro Ty koniecznie chcesz mieć id to możesz je uzyskać w ten sposób. Odpowiedział jedynie na Twoją potrzebę, nie wnikając w jej istotę.

> 
> No, no. 
> Problem leży gdzie indziej. Głównie w twoim przeświadczeniu że bez obcego "frameworku" nie da się programować. 
> 

da się programować, tylko ile się trzeba namęczyć! Siebie i innych. I wynajdywać koło i proch na nowo z każdym nowym projektem. Dostrzegli to programiści zmuszeni niegdyś do programowania w ten sposób i stworzyli ... frameworki. A co więcej - opublikowali i udokumentowali. 
Re: Argument funkcji
#50346
Author: zpksoft
Date: Fri, 02 Mar 2018 07:10
72 lines
3507 bytes
W dniu piątek, 2 marca 2018 14:22:05 UTC+1 użytkownik irq napisał:
> W dniu piątek, 2 marca 2018 13:45:26 UTC+1 użytkownik zpksoft napisał:
> > W dniu piątek, 2 marca 2018 12:42:57 UTC+1 użytkownik Borys Pogoreło napisał:
> > > Lecz jeśli koniecznie go potrzebujesz, to wystarczy
> > > sięgnąć do e.target.id / e.target.nextSibling.id.
> > 
> > Wykręcasz się jak możesz. oczywiście że można na kilka sposobów identyfikować obiekt. Ale... jeśli go nie oznaczysz to również nie obsłużysz. 
> 
> obiekt jest dostępny jako e.target (https://www.w3schools.com/jsref/event_target.asp). Cóż więcej trzeba żeby go obsłużyć? Czyżby wykonać getElementById(e.target.id) ?
> 
> > Zarzuciłeś mi, że indeksowanie jest be a teraz piszesz o e.target.id.
> 
> kolega wyraźnie zastrzegł powyżej, że skoro Ty koniecznie chcesz mieć id to możesz je uzyskać w ten sposób. Odpowiedział jedynie na Twoją potrzebę, nie wnikając w jej istotę.
> 

Hm, śledzisz ten wątek? Chyba nie. Ja nie wyraziłem tu żadnej potrzeby. To mi zarzucono nadawanie id obiektom. Na moje pytanie jak sobie radzisz bez oznaczania obiektów nie uzyskałem odpowiedzi.

> > 
> > No, no. 
> > Problem leży gdzie indziej. Głównie w twoim przeświadczeniu że bez obcego "frameworku" nie da się programować. 
> > 
> 
> da się programować, tylko ile się trzeba namęczyć! Siebie i innych. I wynajdywać koło i proch na nowo z każdym nowym projektem. Dostrzegli to programiści zmuszeni niegdyś do programowania w ten sposób i stworzyli ... frameworki. A co więcej - opublikowali i udokumentowali.

OK. Lata temu było tak: JS kreował pewien standard, przeglądarki w części go respektowały, w części tworzyły swoje rozwiązania (celował w tym IE). Żeby móc pisać jednoznacznie na wszystkie przeglądarki należało bawić się w obejścia typu if (IE) .. else .. Powstały więc biblioteki w których te obejścia były już gotowe.

Teraz jest już inna rzeczywistość. Znakomita większość języka jest prawidłowo interpretowana przez wszystkie współczesne przeglądarki więc już nie ma takiej potrzeby stosowania owych bibliotek, zwłaszcza, że z czasem obrosły w tony nadmiarowego kodu.

Programiści którzy wdepnęli zdrowo w ten sposób programowania nie są w stanie się z niego wydostać. Mało tego- są święcie przekonani że to jedyna słuszna droga.

Klienci pracujący na moich aplikacjach przeglądarkowych często mnie pytają co ja takiego zrobiłem że działają tak szybko. Otóż u mnie nie ma nadmiarowego kodu. 
I żeby nie było że stale wyważam otwarte drzwi. Mam można by powiedzieć własny framework :)

Osobiście szanuję tych którzy programują inaczej niż ja i tego samego oczekuję od innych. 


Paweł
Re: Argument funkcji
#50343
Author: Borys =?utf-8?Q?
Date: Fri, 02 Mar 2018 12:39
17 lines
857 bytes
Dnia Fri, 2 Mar 2018 00:14:59 -0800 (PST), zpksoft napisał(a):

> Właściwie to był zły przykład. Bo obiekt może pamiętać id aktywnego
> rekordu i na tej podstawie łatwo mu podać kolejny-poprzedni. Weźmy coś
> innego: user klika dowolny wiersz. Jak odczytujesz jego id? Po czym?

Ale PO CO mi jego ID? To Ty się uparłeś, by wszystko miało swoje ID, bo
najwyraźniej nie potrafisz inaczej się odwołać do obiektu. A można to
zrobić na wiele sposobów, z których ID jest akurat najmniej praktyczny i z
reguły zupełnie zbędny. Lecz jeśli koniecznie go potrzebujesz, to wystarczy
sięgnąć do e.target.id / e.target.nextSibling.id.

Polecam zapoznanie się z modelem DOM i hierarchią obiektów. Oraz z obsługą
zdarzeń. I generalnie z dokumentacją JavaScriptu, bo chyba tu leży problem.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50347
Author: Borys =?utf-8?Q?
Date: Fri, 02 Mar 2018 21:10
23 lines
933 bytes
Dnia Fri, 2 Mar 2018 04:45:25 -0800 (PST), zpksoft napisał(a):

> Wykręcasz się jak możesz. oczywiście że można na kilka sposobów
> identyfikować obiekt. Ale... jeśli go nie oznaczysz to również nie
> obsłużysz.

Jak już pisałem - polecam poznać model DOM. Serio. Niczego nie trzeba
oznaczać, by móc obsłużyć.

> Zarzuciłeś mi, że indeksowanie jest be a teraz piszesz o e.target.id.

Bo sam o to pytałeś. Weź ze dwa głębokie wdechy i przeczytaj raz jeszcze.

> Problem leży gdzie indziej. Głównie w twoim przeświadczeniu że bez obcego
> "frameworku" nie da się programować.

Nie, problem leży w tym, że najwyraźniej nie znasz podstaw języka, na speca
od którego próbujesz się kreować. Poznałeś lub opracowałeś kiedyś jakąś
dziwną metodę z centralną obsługą zdarzeń i sie jej trzymasz, bo działa,
nie szukając innych rozwiązań.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50348
Author: Roman Tyczka
Date: Sat, 03 Mar 2018 00:19
26 lines
979 bytes
On Fri, 2 Mar 2018 21:10:31 +0100, Borys Pogoreło wrote:

> Nie, problem leży w tym, że najwyraźniej nie znasz podstaw języka, na speca
> od którego próbujesz się kreować. Poznałeś lub opracowałeś kiedyś jakąś
> dziwną metodę z centralną obsługą zdarzeń i sie jej trzymasz, bo działa,
> nie szukając innych rozwiązań.

Szkoda czasu na tego miszcza, on już na grupie delphi odstawiał swoje
filozofie i mądrości, łatwo wygooglować, choćby tu:

https://groups.google.com/forum/#!msg/pl.comp.lang.delphi/3YjX9S0hNS4/PEHncS31AQAJ

Co ciekawe to tutaj akurat na temat wielowątkowość JS, ale warto poczytać,
kupa zabawy ;-)

Blamażem zajmuje się też na swojej stronie, link:

http://zpksoft.republika.pl/jestem.htm

i rozwijamy "Programowaniem żyję, więc coś na ten temat musi być :)"

i od samego początku do końca bełkot i głupoty.
Nie kuma Delphi, nie kuma JS, za to cwaniakuje na całego gdzie popadnie.

--
pozdrawiam
Roman Tyczka
Re: Argument funkcji
#50351
Author: zpksoft
Date: Sat, 03 Mar 2018 00:45
32 lines
1288 bytes
W dniu sobota, 3 marca 2018 03:25:22 UTC+1 użytkownik Cezary Tomczyk napisał:
> On 02/03/2018 16:10, zpksoft wrote:
> [...]
> > OK. Lata temu było tak: JS kreował pewien standard, przeglądarki w części go respektowały, w części tworzyły swoje rozwiązania (celował w tym IE). Żeby móc pisać jednoznacznie na wszystkie przeglądarki należało bawić się w obejścia typu if (IE) .. else .. Powstały więc biblioteki w których te obejścia były już gotowe.[...]
> 
> Dla ścisłości: nie ma czegoś takiego, jak JS. Jest standard ECMAScript 
> (https://www.ecma-international.org/publications/standards/Ecma-262.htm) 
> i jego poszczególne implementacje.
> 
> JavaScript to znak towarowy, którego właścielem jest obecnie Oracle: 
> http://tsdr.uspto.gov/#caseNumber=75026640&caseType=SERIAL_NO&searchType=statusSearch
> 
> -- 
> Cezary Tomczyk
> http://www.ctomczyk.pl/
> Blokowanie automatycznego odtwarzania video na gazeta.pl w Google 
> Chrome: https://goo.gl/0kCRLS
> https://www.aslint.org/ - Accessibility validator tool

Dzięki za uściślenie

Paweł
Re: Argument funkcji
#50353
Author: zpksoft
Date: Sat, 03 Mar 2018 00:58
60 lines
2370 bytes
W dniu piątek, 2 marca 2018 21:10:33 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Fri, 2 Mar 2018 04:45:25 -0800 (PST), zpksoft napisał(a):
> 
> > Wykręcasz się jak możesz. oczywiście że można na kilka sposobów
> > identyfikować obiekt. Ale... jeśli go nie oznaczysz to również nie
> > obsłużysz. 
> 
> Jak już pisałem - polecam poznać model DOM. Serio. Niczego nie trzeba
> oznaczać, by móc obsłużyć.

Już widzę jak iterujesz po obiektach i próbujesz zidentyfikować właściwy po np. kolorze.

> 
> > Zarzuciłeś mi, że indeksowanie jest be a teraz piszesz o e.target.id.
> 
> Bo sam o to pytałeś. Weź ze dwa głębokie wdechy i przeczytaj raz jeszcze.
> 

Twierdziłeś, że nie ma tam identyfikacji po id, więc próbowałem dopytać po czym jest ta identyfikacja. Twoja odpowiedź brzmiała ..prew(), next(), nextsibling().
To są tylko metody a nie elementy identyfikujące. Jak cię przycisnąłem to okazało się, że jednak id tam istnieje...
 

> > Problem leży gdzie indziej. Głównie w twoim przeświadczeniu że bez obcego
> > "frameworku" nie da się programować. 
> 
> Nie, problem leży w tym, że najwyraźniej nie znasz podstaw języka, na speca
> od którego próbujesz się kreować. Poznałeś lub opracowałeś kiedyś jakąś
> dziwną metodę z centralną obsługą zdarzeń i sie jej trzymasz, bo działa,
> nie szukając innych rozwiązań.

Ooo, ciekawe. Gdzie użyłem jakiejś własnej oceny? Widzę, że mimowolnie to ty przypisujesz mi rangę speca.
Szukałem wielu rozwiązań i poszedłem drogą którą uznałem za optymalną.
Zresztą... zajrzyj na mój blog: http://blog-pk.taog.pl/ - nie chodzi mi o to żebyś czytał wpisy. Zobacz jak jest napisany to może coś zrozumiesz.
Zaprojektowałem go sobie od zera.


> 
> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50354
Author: zpksoft
Date: Sat, 03 Mar 2018 01:04
53 lines
1884 bytes
W dniu sobota, 3 marca 2018 00:19:01 UTC+1 użytkownik Roman Tyczka napisał:
> On Fri, 2 Mar 2018 21:10:31 +0100, Borys Pogoreło wrote:
> 
> > Nie, problem leży w tym, że najwyraźniej nie znasz podstaw języka, na speca
> > od którego próbujesz się kreować. Poznałeś lub opracowałeś kiedyś jakąś
> > dziwną metodę z centralną obsługą zdarzeń i sie jej trzymasz, bo działa,
> > nie szukając innych rozwiązań.
> 
> Szkoda czasu na tego miszcza, on już na grupie delphi odstawiał swoje
> filozofie i mądrości, łatwo wygooglować, choćby tu:
> 
> https://groups.google.com/forum/#!msg/pl.comp.lang.delphi/3YjX9S0hNS4/PEHncS31AQAJ

Tam myślałem że dyżurny piesek się odezwie

> 
> Co ciekawe to tutaj akurat na temat wielowątkowość JS, ale warto poczytać,
> kupa zabawy ;-)
> 
> Blamażem zajmuje się też na swojej stronie, link:
> 
> http://zpksoft.republika.pl/jestem.htm
> 

Dobre... Nawet nie wiedziałem że to jeszcze wisi w sieci. 
Moja strona to http://zpksoft.pl Tamto to wpis kilkanaście lat temu na darmowym koncie onetu :D

> i rozwijamy "Programowaniem żyję, więc coś na ten temat musi być :)"
> 
> i od samego początku do końca bełkot i głupoty. 
> Nie kuma Delphi, nie kuma JS, za to cwaniakuje na całego gdzie popadnie.
> 

I po co się tak mędrkujesz? Jaki masz cel pijąc do mnie? Może sprawia ci to przyjemność? Zauważyłem, że wszędzie chcesz uchodzić za znawcę. Rób co chcesz, ale ode mnie się odwal, tyczka.

> -- 
> pozdrawiam
> Roman Tyczka

Paweł
Re: Argument funkcji
#50355
Author: ipluta62@gmail.c
Date: Sat, 03 Mar 2018 01:14
59 lines
2217 bytes
W dniu sobota, 3 marca 2018 10:04:02 UTC+1 użytkownik zpksoft napisał:
> W dniu sobota, 3 marca 2018 00:19:01 UTC+1 użytkownik Roman Tyczka napisał:
> > On Fri, 2 Mar 2018 21:10:31 +0100, Borys Pogoreło wrote:
> > 
> > > Nie, problem leży w tym, że najwyraźniej nie znasz podstaw języka, na speca
> > > od którego próbujesz się kreować. Poznałeś lub opracowałeś kiedyś jakąś
> > > dziwną metodę z centralną obsługą zdarzeń i sie jej trzymasz, bo działa,
> > > nie szukając innych rozwiązań.
> > 
> > Szkoda czasu na tego miszcza, on już na grupie delphi odstawiał swoje
> > filozofie i mądrości, łatwo wygooglować, choćby tu:
> > 
> > https://groups.google.com/forum/#!msg/pl.comp.lang.delphi/3YjX9S0hNS4/PEHncS31AQAJ
> 
> Tam myślałem że dyżurny piesek się odezwie
> 
> > 
> > Co ciekawe to tutaj akurat na temat wielowątkowość JS, ale warto poczytać,
> > kupa zabawy ;-)
> > 
> > Blamażem zajmuje się też na swojej stronie, link:
> > 
> > http://zpksoft.republika.pl/jestem.htm
> > 
> 
> Dobre... Nawet nie wiedziałem że to jeszcze wisi w sieci. 
> Moja strona to http://zpksoft.pl Tamto to wpis kilkanaście lat temu na darmowym koncie onetu :D
> 
> > i rozwijamy "Programowaniem żyję, więc coś na ten temat musi być :)"
> > 
> > i od samego początku do końca bełkot i głupoty. 
> > Nie kuma Delphi, nie kuma JS, za to cwaniakuje na całego gdzie popadnie.
> > 
> 
> I po co się tak mędrkujesz? Jaki masz cel pijąc do mnie? Może sprawia ci to przyjemność? Zauważyłem, że wszędzie chcesz uchodzić za znawcę. Rób co chcesz, ale ode mnie się odwal, tyczka.
> 
> > -- 
> > pozdrawiam
> > Roman Tyczka
> 
> Paweł

i tak, wracając do samego początku niniejszego wątku, cóż się dziwić, że grupy zdychają jedna po drugiej?
Re: Argument funkcji
#50349
Author: Cezary Tomczyk
Date: Sat, 03 Mar 2018 03:19
14 lines
813 bytes
On 02/03/2018 14:22, irq wrote:
[...]
> da się programować, tylko ile się trzeba namęczyć! Siebie i innych. I wynajdywać koło i proch na nowo z każdym nowym projektem. Dostrzegli to programiści zmuszeni niegdyś do programowania w ten sposób i stworzyli ... frameworki. A co więcej - opublikowali i udokumentowali.

Od tych wszystkich wspaniałych frameworków aplikacje puchną do wielu
megabajtów, a i ogarnianie ich zajmuje też sporo czasu i zasobów.
Aplikacje wcale nie stają jakoś radykalnie łatwiej zarządzane,
szczególnie biorąc pod uwagę wiedzę, jaką mają dzisiejsi programiści :-(

--
Cezary Tomczyk
http://www.ctomczyk.pl/
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
https://www.aslint.org/ - Accessibility validator tool
Re: Argument funkcji
#50350
Author: Cezary Tomczyk
Date: Sat, 03 Mar 2018 03:25
16 lines
937 bytes
On 02/03/2018 16:10, zpksoft wrote:
[...]
> OK. Lata temu było tak: JS kreował pewien standard, przeglądarki w części go respektowały, w części tworzyły swoje rozwiązania (celował w tym IE). Żeby móc pisać jednoznacznie na wszystkie przeglądarki należało bawić się w obejścia typu if (IE) .. else .. Powstały więc biblioteki w których te obejścia były już gotowe.[...]

Dla ścisłości: nie ma czegoś takiego, jak JS. Jest standard ECMAScript
(https://www.ecma-international.org/publications/standards/Ecma-262.htm)
i jego poszczególne implementacje.

JavaScript to znak towarowy, którego właścielem jest obecnie Oracle:
http://tsdr.uspto.gov/#caseNumberu026640&caseType=SERIAL_NO&searchType=statusSearch

--
Cezary Tomczyk
http://www.ctomczyk.pl/
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
https://www.aslint.org/ - Accessibility validator tool
Re: Argument funkcji
#50359
Author: zpksoft
Date: Sat, 03 Mar 2018 04:40
10 lines
130 bytes
....> 
> <ziew>
> 
> 
> -- 
> pozdrawiam
> Roman Tyczka

Już raz napisałem. Odwal się ode mnie.

Paweł
Re: Argument funkcji
#50364
Author: zpksoft
Date: Sat, 03 Mar 2018 06:13
36 lines
1494 bytes
W dniu sobota, 3 marca 2018 14:47:59 UTC+1 użytkownik Roman Tyczka napisał:
> On Sat, 3 Mar 2018 04:40:14 -0800 (PST), zpksoft wrote:
> 
> > Już raz napisałem. Odwal się ode mnie.
> > 
> > Paweł
> 
> Trochę pokory miszczu, pisanie do Borysa "Zobacz jak jest napisany to może
> coś zrozumiesz" jest delikatnie mówiąc bezczelne, żeby nie dodać, że i
> żenujące.
> 
> -- 
> pozdrawiam
> Roman Tyczka

Ciągle do mnie pijesz. Nie wiem dlaczego. Mogę się tylko domyślać, ale wolę tego nie pisać.
Owe "Zobacz jak jest napisane..." ma sens bo on tak nie programuje. Nikomu tym nie uwłaczam ani nikogo nie gloryfikuję.

Nie znoszę natomiast jak próbuje się mi skoczyć do gardła tylko dlatego, że mam inne rozwiązania programistyczne, bez wnikania w istotę rzeczy.

Dobrze tu pasują słowa które wypowiedział Steve Jobs: Wasz czas jest ograniczony, więc nie marnujcie go na życie cudzym życiem. Nie dajcie się schwytać w pułapkę dogmatu, która oznacza życie według wskazówek innych ludzi.
Nie pozwólcie, by szum opinii innych zagłuszył wasz wewnętrzny głos.
I co najważniejsze, miejcie odwagę iść za głosem swojego serca i intuicji. Wszystko inne jest mniej ważne.

Paweł
Re: Argument funkcji
#50365
Author: zpksoft
Date: Sat, 03 Mar 2018 06:25
101 lines
3741 bytes
W dniu sobota, 3 marca 2018 14:09:59 UTC+1 użytkownik Borys Pogoreło napisał:
> Dnia Sat, 3 Mar 2018 00:58:07 -0800 (PST), zpksoft napisał(a):
> 
> >> Jak już pisałem - polecam poznać model DOM. Serio. Niczego nie trzeba
> >> oznaczać, by móc obsłużyć.
> > 
> > Już widzę jak iterujesz po obiektach i próbujesz zidentyfikować właściwy
> > po np. kolorze.
> 
> A po co mam identyfikować po kolorze? To jest bardzo zły pomysł. Kolor dziś
> jest zielony, jutro będzie czerwony. Wystarczy sięgnąć np. do klasy.
> Zresztą, dalej nie wiem czego potrzebujesz poza e.target.
> 
> > Twierdziłeś, że nie ma tam identyfikacji po id, więc próbowałem dopytać
> > po czym jest ta identyfikacja. Twoja odpowiedź brzmiała ..prew(),
> > next(), nextsibling().
> 
> Rany, jeszcze raz, powoli: chcesz dotrzeć do konkretnego elementu względem
> tego, który wywołał zdarzenie, to wystarczy przejść po skojarzonych
> elementach DOM. Ty byś pewnie wszystko zIDentyfikował.

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". 

> 
> > To są tylko metody a nie elementy identyfikujące. Jak cię przycisnąłem to
> > okazało się, że jednak id tam istnieje...
> 
> Jeśli ustawisz, to istnieje, co w tym dziwnego?

Dziwne było Twoje twierdzenie że nie istnieje :))

> 
> > Zresztą... zajrzyj na mój blog: http://blog-pk.taog.pl/ - nie chodzi mi o to żebyś czytał wpisy. Zobacz jak jest napisany to może coś zrozumiesz.
> > Zaprojektowałem go sobie od zera.
> 
> Ty tam wynalazłeś nie jedno koło, ale cały zakład oponiarski. I masz kupę
> błędów w implementacjach, np. walidacji adresu e-mail. Przechowywanie hasła
> w ciasteczku czystym tekstem raczej nie wymaga komentarza. Takie rzeczy
> właśnie rozwiązują frameworki lub choćby pojedyncze biblioteki.
> 

To są celowe zabiegi.

> Przejrzystości kodu chyba nie muszę komentować:
> 
> else if (n=='k1') {
>     fillBufP(n, ['k1_s', 'k1_p', 'k1_d'], [user_gid], 'k1_r');
>   }
>   else if (n=='ku') {
>     fillBufP(n, [], [user_gid], 'k1_div');
>   }
>   else if (n=='ksc') {
>     fillBufP(n, ['kec'], [user_gid], '', function(buf){
>       flash(buf);
>     });
>   }
> 

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

> Treść merytoryczna też woła o pomstę do nieba. Bardzo mi się podoba artykuł
> o tablicach asocjacyjnych w JS. Widać, że kompletnie nie rozumiesz
> dziedziczenia w JS i tego, że Array jest pochodną od Object. To co tam
> ustawiasz, to są własności obiektu, nie wartości tablicy.
> 

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ć.


> -- 
> Borys Pogoreło
> borys(#)leszno,edu,pl

Paweł
Re: Argument funkcji
#50371
Author: zpksoft
Date: Sat, 03 Mar 2018 08:39
108 lines
3882 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ł
Re: Argument funkcji
#50352
Author: Roman Tyczka
Date: Sat, 03 Mar 2018 09:52
15 lines
811 bytes
On Sat, 3 Mar 2018 03:19:24 +0100, Cezary Tomczyk wrote:

>> da się programować, tylko ile się trzeba namęczyć! Siebie i innych. I wynajdywać koło i proch na nowo z każdym nowym projektem. Dostrzegli to programiści zmuszeni niegdyś do programowania w ten sposób i stworzyli ... frameworki. A co więcej - opublikowali i udokumentowali.
>
> Od tych wszystkich wspaniałych frameworków aplikacje puchną do wielu
> megabajtów, a i ogarnianie ich zajmuje też sporo czasu i zasobów.
> Aplikacje wcale nie stają jakoś radykalnie łatwiej zarządzane,
> szczególnie biorąc pod uwagę wiedzę, jaką mają dzisiejsi programiści :-(

Trochę przesadzasz. nie jest aż tak źle, choć są frameworki i Frameworki.

https://gist.github.com/Restuta/cda69e50a853aa64912d

--
pozdrawiam
Roman Tyczka
Re: Argument funkcji
#50356
Author: Roman Tyczka
Date: Sat, 03 Mar 2018 12:04
38 lines
1184 bytes
On Sat, 3 Mar 2018 01:04:01 -0800 (PST), zpksoft wrote:

>> Co ciekawe to tutaj akurat na temat wielowątkowość JS, ale warto poczytać,
>> kupa zabawy ;-)
>>
>> Blamażem zajmuje się też na swojej stronie, link:
>>
>> http://zpksoft.republika.pl/jestem.htm
>>
>
> Dobre... Nawet nie wiedziałem że to jeszcze wisi w sieci.
> Moja strona to http://zpksoft.pl Tamto to wpis kilkanaście lat temu na darmowym koncie onetu :D

Czy to znaczy, że zgadzasz się, że tam są bzdury popisane?

>> i rozwijamy "Programowaniem żyję, więc coś na ten temat musi być :)"
>>
>> i od samego początku do końca bełkot i głupoty.
>> Nie kuma Delphi, nie kuma JS, za to cwaniakuje na całego gdzie popadnie.
>>
>
> I po co się tak mędrkujesz? Jaki masz cel pijąc do mnie?

Chcę ustrzec innych, zwłaszcza mniej doświadczonych, żeby nie traktowali
Cię zbyt poważnie i przypadkiem nie brali z Ciebie przykładu, bo pojadą w
maliny.

> Może sprawia ci to przyjemność?

Nie, to przykre, że trzeba czytać takie zbdety.

> Zauważyłem, że wszędzie chcesz uchodzić za znawcę. Rób co chcesz, ale ode mnie się odwal, tyczka.

<ziew>


--
pozdrawiam
Roman Tyczka
Re: Argument funkcji
#50357
Author: Roman Tyczka
Date: Sat, 03 Mar 2018 12:05
8 lines
287 bytes
On Sat, 3 Mar 2018 01:14:27 -0800 (PST), ipluta62@gmail.com wrote:

> i tak, wracając do samego początku niniejszego wątku, cóż się dziwić, że grupy zdychają jedna po drugiej?

Grupy zdychają z zupełnie innych powodów, dziwne, że tego nie wiesz.

--
pozdrawiam
Roman Tyczka
Re: Argument funkcji
#50358
Author: Wojciech Bancer
Date: Sat, 03 Mar 2018 12:17
31 lines
1727 bytes
On 2018-03-03, Cezary Tomczyk <cezary.tomczyk@gmail.com> wrote:
> On 02/03/2018 14:22, irq wrote:
> [...]
>> da siê programowaæ, tylko ile siê trzeba namêczyæ! Siebie i innych. I wynajdywaæ ko³o i proch na nowo z ka¿dym nowym projektem. Dostrzegli to programi¶ci zmuszeni niegdy¶ do programowania w ten sposób i stworzyli ... frameworki. A co wiêcej - opublikowali i udokumentowali.
>
> Od tych wszystkich wspania³ych frameworków aplikacje puchn± do wielu
> megabajtów, a i ogarnianie ich zajmuje te¿ sporo czasu i zasobów.
> Aplikacje wcale nie staj± jako¶ radykalnie ³atwiej zarz±dzane,
> szczególnie bior±c pod uwagê wiedzê, jak± maj± dzisiejsi programi¶ci :-(

Dziêki tym wszystkim frameworkom mo¿esz:

a) wykonaæ du¿o wiêcej pracy w porównywalnym lub krótszym odcinku czasu
b) efektywnie rozdzielaæ pracê w zespole (sensowna struktura obiektowa, która
   jest spójna i znana bo wynika z za³o¿eñ / dokumentacji)
c) ten sam efekt uzyskaæ w du¿o krótszym czasie

Co z tego ¿e zajmuj± megabajty? Nie pracujemy na i386, czy nawet na Pentium.
Pracujemy na kolejnych generacjach Core iCo¶, _coraz tañszych i coraz mocniejszych
maszynach_, czy nawet smarfonach które obecnie maj± moc zdoln± przetwarzaæ filmy 4k.
Wykorzystywanie coraz bardziej wysokopoziomowych jêzyków i narzêdzi ma na celu
optymalizacjê kosztów, bo ogarnianie wszystkiego niskopoziomowo tylko dlatego
¿e kto¶ chce oszczêdziæ 5 cykli procesora jest po prostu bezcelowe i powoli
poza zasiêgiem przeciêtnego cz³owieka.

Nadal w procesie wytwarzania oprogramowania cz³owiek jest tym najdroszym
elementem,zw³aszcza taki który nie rozumie jak szkodliwa i kosztowna jest
przedwczesna i niepotrzebna optymalizacja.

--
Wojciech Bañcer
wojciech.bancer@gmail.com
Re: Argument funkcji
#50360
Author: Borys =?utf-8?Q?
Date: Sat, 03 Mar 2018 13:44
13 lines
676 bytes
Dnia Sat, 3 Mar 2018 01:14:27 -0800 (PST), ipluta62@gmail.com napisał(a):

>> I po co się tak mędrkujesz? Jaki masz cel pijąc do mnie? Może sprawia ci to przyjemność? Zauważyłem, że wszędzie chcesz uchodzić za znawcę. Rób co chcesz, ale ode mnie się odwal, tyczka.
>
> i tak, wracając do samego początku niniejszego wątku, cóż się dziwić, że
> grupy zdychają jedna po drugiej?

E tam, to powyższe to żaden powód. Kiedyś flejmów i kłótni było więcej i
były dużo bardziej soczyste, a nikogo to nie dziwiło. Ludzie odchodzą, a
nowi nie przychodzą, bo jest więcej miejsc z niskim progiem wejścia.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50361
Author: Borys =?utf-8?Q?
Date: Sat, 03 Mar 2018 14:10
54 lines
2198 bytes
Dnia Sat, 3 Mar 2018 00:58:07 -0800 (PST), zpksoft napisał(a):

>> Jak już pisałem - polecam poznać model DOM. Serio. Niczego nie trzeba
>> oznaczać, by móc obsłużyć.
>
> Już widzę jak iterujesz po obiektach i próbujesz zidentyfikować właściwy
> po np. kolorze.

A po co mam identyfikować po kolorze? To jest bardzo zły pomysł. Kolor dziś
jest zielony, jutro będzie czerwony. Wystarczy sięgnąć np. do klasy.
Zresztą, dalej nie wiem czego potrzebujesz poza e.target.

> Twierdziłeś, że nie ma tam identyfikacji po id, więc próbowałem dopytać
> po czym jest ta identyfikacja. Twoja odpowiedź brzmiała ..prew(),
> next(), nextsibling().

Rany, jeszcze raz, powoli: chcesz dotrzeć do konkretnego elementu względem
tego, który wywołał zdarzenie, to wystarczy przejść po skojarzonych
elementach DOM. Ty byś pewnie wszystko zIDentyfikował.

> To są tylko metody a nie elementy identyfikujące. Jak cię przycisnąłem to
> okazało się, że jednak id tam istnieje...

Jeśli ustawisz, to istnieje, co w tym dziwnego?

> Zresztą... zajrzyj na mój blog: http://blog-pk.taog.pl/ - nie chodzi mi o to żebyś czytał wpisy. Zobacz jak jest napisany to może coś zrozumiesz.
> Zaprojektowałem go sobie od zera.

Ty tam wynalazłeś nie jedno koło, ale cały zakład oponiarski. I masz kupę
błędów w implementacjach, np. walidacji adresu e-mail. Przechowywanie hasła
w ciasteczku czystym tekstem raczej nie wymaga komentarza. Takie rzeczy
właśnie rozwiązują frameworki lub choćby pojedyncze biblioteki.

Przejrzystości kodu chyba nie muszę komentować:

else if (n=='k1') {
    fillBufP(n, ['k1_s', 'k1_p', 'k1_d'], [user_gid], 'k1_r');
  }
  else if (n=='ku') {
    fillBufP(n, [], [user_gid], 'k1_div');
  }
  else if (n=='ksc') {
    fillBufP(n, ['kec'], [user_gid], '', function(buf){
      flash(buf);
    });
  }

Treść merytoryczna też woła o pomstę do nieba. Bardzo mi się podoba artykuł
o tablicach asocjacyjnych w JS. Widać, że kompletnie nie rozumiesz
dziedziczenia w JS i tego, że Array jest pochodną od Object. To co tam
ustawiasz, to są własności obiektu, nie wartości tablicy.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50362
Author: Borys =?utf-8?Q?
Date: Sat, 03 Mar 2018 14:17
16 lines
706 bytes
Dnia Sat, 3 Mar 2018 12:17:09 +0100, Wojciech Bancer napisał(a):

> Co z tego że zajmują megabajty? Nie pracujemy na i386, czy nawet na Pentium.
> Pracujemy na kolejnych generacjach Core iCoś, _coraz tańszych i coraz mocniejszych
> maszynach_, czy nawet smarfonach które obecnie mają moc zdolną przetwarzać filmy 4k.

Erm, veto. Właśnie te nieszczęsne smartfony stają się sporym problemem, bo
większość z nich nie grzeszy nadmiarem mocy obliczeniowej. Jakość
połączenia (w tym opóźnienia i czas nawiązania połączenia) też z reguły nie
jest najlepsza.

Fajnie o tym opowiada gość z Google:
https://www.youtube.com/watch?vKZvq3nodf4

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50363
Author: Roman Tyczka
Date: Sat, 03 Mar 2018 14:47
12 lines
308 bytes
On Sat, 3 Mar 2018 04:40:14 -0800 (PST), zpksoft wrote:

> Już raz napisałem. Odwal się ode mnie.
>
> Paweł

Trochę pokory miszczu, pisanie do Borysa "Zobacz jak jest napisany to może
coś zrozumiesz" jest delikatnie mówiąc bezczelne, żeby nie dodać, że i
żenujące.

--
pozdrawiam
Roman Tyczka
Re: Argument funkcji
#50366
Author: Borys =?utf-8?Q?
Date: Sat, 03 Mar 2018 16:34
28 lines
1333 bytes
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

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.

> 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ę.

> 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).

--
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Argument funkcji
#50367
Author: Wojciech Bancer
Date: Sat, 03 Mar 2018 16:49
25 lines
993 bytes
On 2018-03-03, Borys Pogore³o <borys@pl.edu.leszno> wrote:

[...]

>> Co z tego ¿e zajmuj± megabajty? Nie pracujemy na i386, czy nawet na Pentium.
>> Pracujemy na kolejnych generacjach Core iCo¶, _coraz tañszych i coraz mocniejszych
>> maszynach_, czy nawet smarfonach które obecnie maj± moc zdoln± przetwarzaæ filmy 4k.
>
> Erm, veto. W³a¶nie te nieszczêsne smartfony staj± siê sporym problemem, bo
> wiêkszo¶æ z nich nie grzeszy nadmiarem mocy obliczeniowej. Jako¶æ
> po³±czenia (w tym opó¼nienia i czas nawi±zania po³±czenia) te¿ z regu³y nie
> jest najlepsza.

Ale to jest niezale¿ne od zastosowanego frameworka. Te nowe my¶lê ¿e
daje siê dopasowaæ do wymagañ.

Zreszt± sam autor tak naprawdê nie skupia siê na tym by ich nie u¿ywaæ,
a by odpowiedni optymalizowaæ dostarczanie contentu, stosowaæ cache,
workery itp.

I ju¿ to widzê jak mieliby¶my to robiæ sposobem zpksoftu, czyli
wszystko pisaæ rêcznie i obs³ugiwaæ w centralnym miejscu. :)

--
Wojciech Bañcer
wojciech.bancer@gmail.com
Re: Argument funkcji
#50368
Author: Cezary Tomczyk
Date: Sat, 03 Mar 2018 17:22
53 lines
2611 bytes
On 03/03/2018 12:17, Wojciech Bancer wrote:
> On 2018-03-03, Cezary Tomczyk <cezary.tomczyk@gmail.com> wrote:
>> On 02/03/2018 14:22, irq wrote:
>> [...]
>>> da siê programowaæ, tylko ile siê trzeba namêczyæ! Siebie i innych. I wynajdywaæ ko³o i proch na nowo z ka¿dym nowym projektem. Dostrzegli to programi¶ci zmuszeni niegdy¶ do programowania w ten sposób i stworzyli ... frameworki. A co wiêcej - opublikowali i udokumentowali.
>>
>> Od tych wszystkich wspania³ych frameworków aplikacje puchn± do wielu
>> megabajtów, a i ogarnianie ich zajmuje te¿ sporo czasu i zasobów.
>> Aplikacje wcale nie staj± jako¶ radykalnie ³atwiej zarz±dzane,
>> szczególnie bior±c pod uwagê wiedzê, jak± maj± dzisiejsi programi¶ci :-(
>
> Dziêki tym wszystkim frameworkom mo¿esz:
>
> a) wykonaæ du¿o wiêcej pracy w porównywalnym lub krótszym odcinku czasu

Niektóre rzeczy, ale nie wszystko.

> b) efektywnie rozdzielaæ pracê w zespole (sensowna struktura obiektowa, która
>     jest spójna i znana bo wynika z za³o¿eñ / dokumentacji)

W teorii tak, a w praktyce wygl±da to zupe³nie inaczej. Trafi³em na
projekt napisany w Angularze 1.x. W pewnym momencie doszli do ¶ciany, bo
aplikacja sta³a siê niezarz±dzalna. Wniosek jest taki, ¿e ¿aden
framework nie zabezpieczy przed napisaniem ¶mieciowego kodu.

> c) ten sam efekt uzyskaæ w du¿o krótszym czasie

To pojêcie wzglêdne.

> Co z tego ¿e zajmuj± megabajty? Nie pracujemy na i386, czy nawet na Pentium.
> Pracujemy na kolejnych generacjach Core iCo¶, _coraz tañszych i coraz mocniejszych
> maszynach_, czy nawet smarfonach które obecnie maj± moc zdoln± przetwarzaæ filmy 4k.
> Wykorzystywanie coraz bardziej wysokopoziomowych jêzyków i narzêdzi ma na celu
> optymalizacjê kosztów, bo ogarnianie wszystkiego niskopoziomowo tylko dlatego
> ¿e kto¶ chce oszczêdziæ 5 cykli procesora jest po prostu bezcelowe i powoli
> poza zasiêgiem przeciêtnego cz³owieka.
>
> Nadal w procesie wytwarzania oprogramowania cz³owiek jest tym najdroszym
> elementem,zw³aszcza taki który nie rozumie jak szkodliwa i kosztowna jest
> przedwczesna i niepotrzebna optymalizacja.

Nie mam nic przeciwko frameworkom. Niemniej jednak wiêkszo¶æ z nich jest
strasznie "spuchniêta", a jak dodaæ jeszcze to, co programi¶ci
"wyrze¼bi±", to robi siê z tego kilka MB.

Wed³ug mnie ma to znaczenie, bo co z tego, ¿e mamy kilka GB RAM-u jak
trzeba tony kodu bez sensu przetwarzaæ by osi±gn±æ proste rezultaty.

--
Cezary Tomczyk
http://www.ctomczyk.pl/
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
https://www.aslint.org/ - Accessibility validator tool
Re: Argument funkcji
#50369
Author: Cezary Tomczyk
Date: Sat, 03 Mar 2018 17:30
29 lines
900 bytes
On 03/03/2018 16:34, Borys Pogoreło wrote:
> 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
>
> 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.

[...]
Nie tak do końca jednoznaczne, bo:

<a href="http://www.ctomczyk.pl/" id="link"><span>Blog</span></a>

const link = document.getElementById('link');

link.addEventListener('click', eventListener);

Teraz, jak klikniesz na <span> to e.target będzie wskazywać na <span>, a
nie na <a> ;-)

Jest jeszcze
https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget

--
Cezary Tomczyk
http://www.ctomczyk.pl/
Re: Argument funkcji
#50370
Author: Borys =?utf-8?Q?
Date: Sat, 03 Mar 2018 17:34
26 lines
1113 bytes
Dnia Sat, 3 Mar 2018 16:49:01 +0100, Wojciech Bancer napisał(a):

> Ale to jest niezależne od zastosowanego frameworka. Te nowe myślę że
> daje się dopasować do wymagań.

Do pewnego stopnia zależne, bo przeglądarka musi sparsować te kilobajty
kodu, z których z reguły i tak wykorzystujemy zaledwie jakąś część. Inna
sprawa, że najczęściej do tego jest dorzucane 10 razy tyle dodatkowych
bibliotek i leci paczka 400KB, która blokuje telefon na sekundę albo i
dłużej...

> Zresztą sam autor tak naprawdę nie skupia się na tym by ich nie używać,
> a by odpowiedni optymalizować dostarczanie contentu, stosować cache,
> workery itp.

Tak, ale też pokazuje z czym tak naprawdę trzeba się liczyć pisząc kod. I
że optymalizacja nadal jest wymagana. i7 pod biurkiem i Snapdragon 835 w
kieszeni trochę psują punkt widzenia.

> I już to widzę jak mielibyśmy to robić sposobem zpksoftu, czyli
> wszystko pisać ręcznie i obsługiwać w centralnym miejscu. :)

Ja jestem ciekaw z jak wielkim hukiem by wyleciał z pierwszego code review.

--
Borys Pogoreło
borys(#)leszno,edu,pl
Page 1 of 2 • 65 total messages
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads