IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petra Kleislová:8.5.2017 18:23

Ahojte,
vytvořila jsem si program v javaScriptu, pro zkoušení slovíček.
Mám tam proměnnou datového typu string.
pro ilustraci vypadá nějak takto:
var str = pes#dog#42#koč­ka#cat#53";
Ten program s tou proměnnou pracuje a mění tak pořadí těch zkoušených slovíček.Ten string je strašně dlouhý.
Do toho stringu můžu doplňovat nová slovíčka ke zkoušení, opravovat je a tak...
Vždycky na konci toho zkoušení si nechám ten dlouhý string vypsat do prohlížeče a nakopíruju ho do zdrojového kódu.
Šlo by to nějak jinak? Určitě si přece může třeba ten server zapamatovat ten můj dlouhý řetězec do dalšího dne, ne? To by asi chtělo něco jiného než JavaScript?

 
Odpovědět
8.5.2017 18:23
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Petra Kleislová
Verquido:8.5.2017 18:50

V čem to přesně děláš?
Jak to jede na serveru?
Kde to vypisuješ?

 
Nahoru Odpovědět
8.5.2017 18:50
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Petra Kleislová
Petr Šťastný:8.5.2017 18:52

JS může jednoduše ukládat data přímo do prohlížeče uživatele. Slouží k tomu LocalStorage, SessionStorage, nebo Cookies, tebe bude asi zajímat LocalStorage.

// Ulož do LocalStorage
localStorage["jmenoUloziste"] = data;
// Načti z LocalStorage
data = localStorage["jmenoUloziste"];

Tedy string můžeš uložit takto:

// Ziskam string a ulozim si ho do promenne 'data'
data = "...";
// Ulozim si data
localStorage["slovicka"] = data;

// O nekolik dni pozdeji

// Pri nacteni stranky: chci nacist data, co jsem si ulozil
var data = localStorage["slovicka"];
// Ted tam mam presne to, co jsem ukladal.

// Edit: předpokládám, že to jede u klienta. V opačném případě by se na to asi muselo trochu jinak

Editováno 8.5.2017 18:54
 
Nahoru Odpovědět
8.5.2017 18:52
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Petra Kleislová
mkub:8.5.2017 20:36

pokial chces ukadat udaje na strane servera, tak javascript by som nepouzil, je to vacsinou jazyk na strane klienta (browsera), aj ked existuje technika na pouzitie na serveri.
v tomto pripade sa skus poobzerat po inom jazyku, co dokaze ukladat na serveri (napr. ASP, PHP) a najlepsie pridaj do toho aj nejaku databazu

 
Nahoru Odpovědět
8.5.2017 20:36
Avatar
Odpovídá na Petr Šťastný
Neaktivní uživatel:9.5.2017 10:07

Jenže toho místa není zas tak moc. A pokud je to velký string, tak nemusí stačit.

Nahoru Odpovědět
9.5.2017 10:07
Neaktivní uživatelský účet
Avatar
Odpovídá na Petr Šťastný
Petra Kleislová:9.5.2017 14:03

Všem vám moc děkuji za rady!
O localStorage jsem nevěděla a prozatím to řeší můj problém.
www.w3schools.com/…bstorage.asp
podle uvedeného odkazu tam je prostor 5MB, Což mi pro začátek postačí. :-)

Jinak, když už jsem do toho problému zainteresovala tolik výborně orientovaných lidí, tak jak ten problém řešit v případě toho serveru ( v PHP či ASP)? Je to mnohem složitější?

 
Nahoru Odpovědět
9.5.2017 14:03
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Petra Kleislová
Petr Šťastný:9.5.2017 16:39

Nejdříve bys musela rozchodit server, což už jenom to je (hlavně v případě ASP) na malý projekt poměrně zbytečné, když to jde jednoduše udělat v JS.

Server by musel buďto ukládat data do cookies (což si můžeš představit jako localstorage, jenom by do něj přistupoval server), nebo rovnou do databáze, což je už opravdu na zkoušení slovíček overkill.

Moje rada je, abys to vyzkoušela v JS, což je ta nejjednodušší a nejrychlejší metoda. Pokud to chceš dělat přes server, bude to mnohem zdlouhavější, nehledě na to, že budeš ještě muset nějak hostovat.

 
Nahoru Odpovědět
9.5.2017 16:39
Avatar
vidlec
Člen
Avatar
vidlec:3.7.2017 10:47

Samozřejmě, že lze s JS pracovat lokálně na úrovni serveru :)
Stačí nainstalovat https://nodejs.org/en/

A pak z příkazové řádky - node script.js
A rázem máte přístup z JS k plnému filesystemu a můžete ukládat co chcete a kam chcete.
Není potřeba žádný webový server.

Btw. v JS je jedno jestli je to string, nebo int nebo třeba rohlík, jelikož je dynamicky typovaný.
Kdbych se chtěl učit slovíčka takovýmto zbytečně komplikovaným způsobem, tak bych si alespoň někde vedle udělal pole objektů:

[       {
        "cz":"pes",
        "aj":"dog"
        },
        {
        "cz":"slunce",
        "aj":"sun"
        }
]

Abych se vyhnul manipulaci s jedním obrovským stringem.

 
Nahoru Odpovědět
3.7.2017 10:47
Avatar
Odpovídá na Petra Kleislová
Wal De Mar-Lad:3.7.2017 12:09

String je na to v princípe najmenej vhodný. Už len preto, že stringy sú immutable - ty nedopĺňaš slovíčka stringu, vlastne zakaždým vytváraš nový. Čo v princípe nevadí, RAM tým nespotrebuješ, o ten starý sa zakaždým postará garbage collector. Len je to prinajmenšom neefektívne. Použi pole, objekt, prípadne mapu či set ak je to možné. Len nie string. A na ukladanie v prehliadači použi localStorage. Tam je miesta dosť, A NIE JE TO 5MB...

Nahoru Odpovědět
3.7.2017 12:09
Libraries over frameworks...
Avatar
Odpovídá na Petr Šťastný
Marian Benčat:3.7.2017 18:20

Server v .NET má ve finále menší počet řádek, než ten v JS. http://nancyfx.org/ + jako bonus, to není jazyk na ´´urovni roku 1999.

Nahoru Odpovědět
3.7.2017 18:20
Totalitní admini..
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Marian Benčat
Petr Šťastný:4.7.2017 9:18

Pokud by bylo potreba udelat server, souhlasim s tim, ze ASP.net je lepsi volba, ale pro procvicovani slovicek se mi to zda zbytecne, tam staci trocha javascriptu na strane klienta.

Pokud jde o muj prispevek, to jsem napsal ponekud nestastne, omlouvam se za to, neni jasne, co myslim. Nemyslel jsem JS na strane serveru, ale myslel jsem, ze ASP server je na takovou malou aplikaci overkill, staci bohate JS na strane klienta.

 
Nahoru Odpovědět
4.7.2017 9:18
Avatar
Odpovídá na Marian Benčat
Wal De Mar-Lad:4.7.2017 10:31

Tak to si dal fakt príklad krátkozrakého pohľadu na vec. Čo sa efektivity týka, je na tom node server ďaleko lepšie ako .net server. Podľa mňa by nebol problém nájsť hardvérovú zostavu na ktorej rozbehám linux + node a obslúži mi tisíce klientov, zato .net server sa na tú konfiguráciu odmietne čo len nainštalovať. A samozrejme, že na tom node pôjde ES7, nie ES3, čiže žiadne také že jazyk na úrovni 1999...

Nahoru Odpovědět
4.7.2017 10:31
Libraries over frameworks...
Avatar
Odpovídá na Petr Šťastný
Wal De Mar-Lad:4.7.2017 10:32

Presne to som mal na mysli, preto som predtým server ani nespomínal. Riešenie pre ňu vyzerá byť single page application, ani by som do toho server neťahal - preto som spomínal localstorage.

Nahoru Odpovědět
4.7.2017 10:32
Libraries over frameworks...
Avatar
Odpovídá na Wal De Mar-Lad
Marian Benčat:4.7.2017 17:00

Koukám, že jsi asi úplně mimo :-) Ale já budu tak hodný, že tě z té hlouposti vyvedu.

Tak to vezmeme postupně:
Samotný výkon:
http://benchmarksgame.alioth.debian.org/…/compare.php?…

Propustnost:
Můžeš se přesvědčit sám, pokud tomu nevěříš.. já jsem to testoval na linuxu a moje výsledky byly hodně podobné těm oficiálním:
https://github.com/…t/benchmarks

.NET Core je 3x - 12x propustnější než NodeJS.

Poslal bych ti ještě jeden, který by sis mohl sám spustit a zjsitil by si, na jak primitivní věc potřebuje nejnovější V8čka 2GB paměti, zatímco .NET si vystačí s 47MB, ale už bys brečel :-)

A ES7 je na úrovni jazyka z roku 1999.. Ono taky.. né NADARMO je javascript považován za ideální případ toho největšího odpadu mezi jazyky :-) Za mišmaš těch nejhorších rozhodnutí.. A to, že nabalili v ES7 věci, které mají ostatní jazyky 10let na tom nic nezmění :-)

Ono se stačí kouknout do V8čky jak byl třeba naimplementován nedávno LET ve foru, který způsoboval to, že zatímco s var trval for 1sec, tak s LETem 400sec a hned člověk pochopí, jaký odpad to je :-) Ale chápu, že pokud nic jiného neumíš, do nedávna si posouval javascriptem DIVy po stránce a najednou jsi "full stack programátor", tak jsi jednooký..

Tak co mi na to povíš nyní?

Editováno 4.7.2017 17:03
Nahoru Odpovědět
4.7.2017 17:00
Totalitní admini..
Avatar
Odpovídá na Wal De Mar-Lad
Marian Benčat:4.7.2017 17:05

Jinak s tou instalací si mě pobavil, jelikož zrovna dnes jsem stahoval na 5 počítačů z ofic stránek node.js a ten balíček byl tak kvalitně udělaný, že NPM nainstaloval bez 36 nutných balíčků, takže nešlo nainstalovat žádný balíček, protože NPM crashovalo :-)

Tolik k tomu "nepodařilo by se mi to nainstalovat" (y)

Nahoru Odpovědět
4.7.2017 17:05
Totalitní admini..
Avatar
Wal De Mar-Lad:5.7.2017 14:57

Ďakujem, že si tak "hodný" a podujal si sa priviesť na pravú vieru ďalšieho "hlupáka". Ale myslím, že by si mal zmeniť tón. Lebo s takýmto útočným prejavom, znevažovaním a urážaním ľudí čo neprogramujú na Tvojej "jedinej pravej platforme, v jedinom pravom jazyku", tu rýchlo budeš hlupáka akurát tak ty sám... Navyše, Tvoje argumenty potvrdili Tvoju krátkozrakosť. Zrovnávaš hrušky s jablkami a to, že jablko nie je hruška, predkladáš ako dôkaz toho, že hruška chutí najlepšie. Lebo to, čo chutí Tebe, má tú jedinú, správnu chuť... Ale v poho. Síce ma žiadny test nepresvedčí, že má Kestrel nižšiu latenciu ako Node, že efektívnejšie obslúži viac klientov, ale v pohode, zotrvávaj si vo svojom presvedčení. No a nakoniec ... nie je náhodou Net technológia zúfalým pokusom MS konkurovať Jave? Zdá sa mi, že kvôli jej popularite sa MS rozhodol zas niečo okukať a urobiť po svojom... A nebol to Node, jeho princíp a popularita, ktorú sa MS pokúša s Core napodobniť a dobehnúť? Nedivil by som sa keby to tak bolo... Ale popravde, čo ja viem. Ja len 15 rokov na webstránkach kde-tu hýbem div-my a hrám sa na fullstack programátora... Čo dodať Sherlock, keď vieš všetko lepšie a ešte ma aj poznáš lepšie ako ja sám. Snáď len ... nie som fullstack programátor. Neznášam to slovo. A nikoho zaň nepovažujem. A Teba konkrétne už vôbec nie. Howgh.

Nahoru Odpovědět
5.7.2017 14:57
Libraries over frameworks...
Avatar
Odpovídá na Wal De Mar-Lad
Marian Benčat:5.7.2017 16:00

Ok, napsal si jen samé hlouposti, takže ztrácím zájem s tebou komunikovat. Kromě toho, že jsi řekl asi tak - 1000 argumentů a jediné na co si se zmohl je "žádný test mě nepřesvědčí" a "srovnáváš jabka s hruškama".

Ale potvrdil si, že hýbeš těma DIVama :-) Tak pokračuj.

Nahoru Odpovědět
5.7.2017 16:00
Totalitní admini..
Avatar
Odpovídá na Wal De Mar-Lad
Marian Benčat:5.7.2017 16:01

Ještě pro tvoji informaci, já s JS a Nodem dělám denně a tak nějak tuším, že s ním mám více zkušeností, než si myslíš.

Nahoru Odpovědět
5.7.2017 16:01
Totalitní admini..
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.