Ett JavaScript ramverk som man inte behöver installera?

Permalänk
Hedersmedlem
Skrivet av heretic16:

Jag har aldrig kört javascript.
Jag har aldrig liksom förstått hur det programmeringsspråket fungerar. Vart börjar man? Är det bara ett språk där man använder funktioner för att anropa med mera?

Jag vill helst ha det enklaste javascript-ramverket då jag har inga krav på javascriptramverket. Det enda jag kräver är att det ska fungera efter många många år. Så jag inte gör en liten hemsida och sedan efter 10 år så slutar den att fungera för komponenterna stöds inte längre.

Long Time Support är något som jag värderar högt.

Det är jätteskoj att du försöker lära dig, men du kanske ska sänka ambitionsnivån några snäpp.

Eftersom du pratar om javascript på en websida så är det en webläsare som kommer att köra koden. Låser du koden, dvs den ändras inte, och lås webläsaren så kommer det att fortsätta fungera. Det finns en anledning till att det länge fanns grejer som krävde IE6. Finns säkert något kvar fortfarande.

Har du inga krav på javascriptramverket så skippa ramverk. Det finns inget tvång att använda det. Det underlättar också när det kommer till att låsa koden eftersom du annars är beroende av att servern som du hämtar ramverket ifrån fortsätter att tillhandahålla det.

Men som sagt, med tanke på vad du skriver så kommer ditt största problem att vara att bygga sidan. Börja med det och lös de andra problemen sen.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Inaktiv

React är nog smidigast bland ramverken/biblioteken.
Dels är det ju ganska slim från början och kan byggas på, sen så är det ju i princip ren JS jämfört med hittepå-syntaxen i framför allt Vue.

Permalänk
Skrivet av giplet:

Det är jätteskoj att du försöker lära dig, men du kanske ska sänka ambitionsnivån några snäpp.

Eftersom du pratar om javascript på en websida så är det en webläsare som kommer att köra koden. Låser du koden, dvs den ändras inte, och lås webläsaren så kommer det att fortsätta fungera. Det finns en anledning till att det länge fanns grejer som krävde IE6. Finns säkert något kvar fortfarande.

Har du inga krav på javascriptramverket så skippa ramverk. Det finns inget tvång att använda det. Det underlättar också när det kommer till att låsa koden eftersom du annars är beroende av att servern som du hämtar ramverket ifrån fortsätter att tillhandahålla det.

Men som sagt, med tanke på vad du skriver så kommer ditt största problem att vara att bygga sidan. Börja med det och lös de andra problemen sen.

Men då kör jag utan ramverk då.
Men hur kan jag göra grafer och liknande med JavaScript? För det är väll i JS man skapar plottar och allt sådant häftigt?

Permalänk
Medlem

Det känns som du saknar mycket grundförståelse i programmering för att kunna ta på dig detta projekt. Jag rekommenderar att lägga något år på att avklara grundkurser på youtube/udemi i allt från nätverk, webbutveckling, javascript, webbserver, säkerhet, webbapi:er.

Efter detta har du förståelse själv att veta om vue.js, react eller angular är rätt väg för dig. Om du vill ha ett frontend-ramverk som kräver kompilering eller kan köras direkt i webbläsaren. Om servern ska serva filerna eller om de ska hostas på cdn. Ska graferna renderas i backend som bilder eller renderas i webbläsaren direkt. Hur data till graferna ska nå klienten i webbläsaren. Osv.

Permalänk
Medlem
Skrivet av heretic16:

Men då kör jag utan ramverk då.
Men hur kan jag göra grafer och liknande med JavaScript? För det är väll i JS man skapar plottar och allt sådant häftigt?

Med säg React är det lätt att göra grafer då du kan installera färdiga komponentbibliotek nån har gjort som du bara matar med din data och säger hur grafen ska se ut så är det klart typ, men det finns ingen anledning till varför du inte kan göra samma saker utan ett stort bibliotek/ramverk.

Använd t ex https://www.chartjs.org/ via CDN så kan du göra grafer. Finns säkert massa andra bibliotek men det dök upp först när jag kollade snabbt.

Tror inte det finns något inbyggt i JS för att göra grafer om det är det du menar, då får du bygga ett eget grafbibliotek och det känns lite extremt.

Permalänk
Skrivet av Haladria:

Det känns som du saknar mycket grundförståelse i programmering för att kunna ta på dig detta projekt. Jag rekommenderar att lägga något år på att avklara grundkurser på youtube/udemi i allt från nätverk, webbutveckling, javascript, webbserver, säkerhet, webbapi:er.

Efter detta har du förståelse själv att veta om vue.js, react eller angular är rätt väg för dig. Om du vill ha ett frontend-ramverk som kräver kompilering eller kan köras direkt i webbläsaren. Om servern ska serva filerna eller om de ska hostas på cdn. Ska graferna renderas i backend som bilder eller renderas i webbläsaren direkt. Hur data till graferna ska nå klienten i webbläsaren. Osv.

Jag har programmerat i över 10 år. Dock inte nätverk eller javascript.

Hur ska ni ha det?
Ramverk eller inte ramverk?

Permalänk
Skrivet av Xenofonus:

Med säg React är det lätt att göra grafer då du kan installera färdiga komponentbibliotek nån har gjort som du bara matar med din data och säger hur grafen ska se ut så är det klart typ, men det finns ingen anledning till varför du inte kan göra samma saker utan ett stort bibliotek/ramverk.

Använd t ex https://www.chartjs.org/ via CDN så kan du göra grafer. Finns säkert massa andra bibliotek men det dök upp först när jag kollade snabbt.

Tror inte det finns något inbyggt i JS för att göra grafer om det är det du menar, då får du bygga ett eget grafbibliotek och det känns lite extremt.

Okej. Då återstår det för mig att jag måste använda ett ramverk.
Men 1 år utan support är att slänga in projektet i riskzonen?

Typ om jag har en linjegraf för ChartJs 2.0 och sedan ChartJs 2.1 så kanske linjegrafens bibliotek ändras och ChartJs 2.0 avskaffas? Då kan jag inte använda mitt projekt?

Permalänk
Medlem
Skrivet av heretic16:

Men då kör jag utan ramverk då.
Men hur kan jag göra grafer och liknande med JavaScript? För det är väll i JS man skapar plottar och allt sådant häftigt?

JavaScript lägger in element i ditt HTML-dokument. Graferna du ser är HTML som genererats av JavaScript.

Du verkar inte riktigt vara med på vad JS är och hur det används.. jag föreslår att du tar reda på detta innan du planerar ditt stora projekt. Ramverk har inte direkt någon betydelse om du fortfarande inte har koll på hur det ska användas.

"Vanilla" JavaScript (d.v.s, helt vanlig JS) kommer du långt med. Ladda annars bara in t.ex. ChartJS i ditt HTML-dokument så slipper du bråka med att bygga upp dina grafer från grunden.

Du laddar in detta genom HTML-taggen:

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

Då kommer skriptet att laddas ner på din KLIENT och aldrig landa på servern ö.h.t. Din server behöver alltså inte bry sig mer än att ge det ursprungliga HTML-dokumentet som din KLIENT laddar ner.

Det är sedan KLIENTEN som exekverar detta javascript-bibliotek och tolkar det som står i din HTML-fil (som då alltså innehåller både HTML, CSS och JS). Din server har en enda uppgift och det är att skicka HTML-filen till den som begär den.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av heretic16:

Jag har programmerat i över 10 år. Dock inte nätverk eller javascript.

Hur ska ni ha det?
Ramverk eller inte ramverk?

Hur ska DU ha det? Om du programmerat i 10 år så borde du alltså kunna ta reda på informationen som du söker, genom en enkel webbsökning. JavaScript är inget unikt. Det är helt enkelt ett löst typat skriptspråk. Det är superenkelt att sätta sig in i.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av heretic16:

Jag har programmerat i över 10 år. Dock inte nätverk eller javascript.

Hur ska ni ha det?
Ramverk eller inte ramverk?

Det är väl upp till dig.
Som sagt, om LTS är jätteviktigt så är inte ramverk/bibliotek vägen att gå.
Dessvärre kommer du då själv att behöva bygga all kod för de features du vill stödja.

Om du ska köra med ett ramverk vars kod du hämtar från ett CDN så kommer det, någon gång, att sluta fungera eftersom versionen inte längre stöds eller har flyttats etc. För varje externt beroende du använder tillkommer även en massa potentiella säkerhetsrisker som du då behöver hålla koll på och uppdatera versioner, vilket innebär att du kommer behöva in och ändra saker lite allteftersom.

Om tanken är att utomstående ska ha tillgång till din webbserver och trafik kan komma ifrån en mängd olika webbläsare skulle jag säga att LTS ändå är att glömma och då kan du lika gärna använda något ramverk.

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk
Medlem
Skrivet av heretic16:

All min javascript-kod kommer befinna sig i processorer och inte hårddiskar. Så det är viktigt att javascript fungerar länge.

Men då kanske man ska bara köra rent JavaScript då. Kan man ens göra grafer och liknande med JavaScript?

Du kan absolut göra grafer med JavaScript. Alla nämnda ramverk och bibliotek är ju i grund och botten bara JavaScript som via sina APIer, struktur och hjälpfunktioner ger dig möjlighet att snabbare, enklare och mer optimerat göra vissa saker. Ingen av dom adderar någon unik feature som vanligt JavaScript inte klarar av.

Vad gäller just grafer specifikt så kan du absolut skapa egna men det är inte vidare enkelt förutsatt att du vill ha lite mer avancerade varianter. Det finns liksom inget inbyggt graf-API i JavaScript som man lätt kan använda utan du behöver skapa det själv och verkligen "manuellt bygga graferna". Så förmodligen är det en väldigt bra idé att kika på t.ex chart.js som någon nämnde så att du slipper det jobbet.

Permalänk
Medlem

Behöver sidan och dess grafer uppdateras i realtid, eller duger det med att ladda om sidan manuellt? Det finns säkerligen något lättviktigt bibliotek för att rita grafer som du kan använda, och behöver du inte dynamik så blir det rätt onödigt med ramverk.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Okej. Då återstår det för mig att jag måste använda ett ramverk.
Men 1 år utan support är att slänga in projektet i riskzonen?

Typ om jag har en linjegraf för ChartJs 2.0 och sedan ChartJs 2.1 så kanske linjegrafens bibliotek ändras och ChartJs 2.0 avskaffas? Då kan jag inte använda mitt projekt?

Om du nu har programmerat i 10 år så borde du veta att du utvecklar mot en specifik version av ett ramverk. Litar du inte på att ChartJs inte uppgraderar och förstör din sida så tar du en kopia av js-filen och servar den själv. Då kommer den aldrig att uppgraderas med mindre än att du gör det själv.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem

Premissen att tvunget köra en webbserver på extremt enkel hårdvara har inte motiverats. "För att det är kul" är förstås en fullt giltig anledning, men när den kombineras med "behöver funka i 10 år", så börjar man ju undra.

Det finns många anledningar till att det är bättre att skicka upp data centralt och sedan presenentera den där. Det kräver förstås en del provisioning om man vill ha säker identifiering av varje enhet och internetuppkoppling blir ju då ett krav, men uppenbarligen finns redan nätverksanslutning i alla fall. Gör man så försvinner ju en stor del av diskussionen om vilket ramverk som är det bästa. Ta ett, byt om det var fel och möjligheten att säkerhetsuppdatera ramverket finns kvar utan att behöva röra enheten.

TLS är ju en sak att fundera över också. Webbläsare är ju ofta inte sugna på att ansluta utan https. Om några år kanske de vägrar helt om man inte går in och slår om någon obskyr inställning. Hur ska ett eventuellt servercertifikat hållas uppdaterat? Problemet att säkra dataflödet försvinner förstås inte om man skickar upp data centralt i stället.

Permalänk
Skrivet av Pamudas:

JavaScript lägger in element i ditt HTML-dokument. Graferna du ser är HTML som genererats av JavaScript.

Du verkar inte riktigt vara med på vad JS är och hur det används.. jag föreslår att du tar reda på detta innan du planerar ditt stora projekt. Ramverk har inte direkt någon betydelse om du fortfarande inte har koll på hur det ska användas.

"Vanilla" JavaScript (d.v.s, helt vanlig JS) kommer du långt med. Ladda annars bara in t.ex. ChartJS i ditt HTML-dokument så slipper du bråka med att bygga upp dina grafer från grunden.

Du laddar in detta genom HTML-taggen:

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

Då kommer skriptet att laddas ner på din KLIENT och aldrig landa på servern ö.h.t. Din server behöver alltså inte bry sig mer än att ge det ursprungliga HTML-dokumentet som din KLIENT laddar ner.

Det är sedan KLIENTEN som exekverar detta javascript-bibliotek och tolkar det som står i din HTML-fil (som då alltså innehåller både HTML, CSS och JS). Din server har en enda uppgift och det är att skicka HTML-filen till den som begär den.

Exakt så tänker jag.
Okej. Vanlig JavaScript och ChartJS ska nog duga för mig.

Kan vanlig JavaScript ansluta till databas också?

Permalänk
Skrivet av monocles:

Behöver sidan och dess grafer uppdateras i realtid, eller duger det med att ladda om sidan manuellt? Det finns säkerligen något lättviktigt bibliotek för att rita grafer som du kan använda, och behöver du inte dynamik så blir det rätt onödigt med ramverk.

Sidan behövs uppdateras i realtid. Men JavaScript har väll stöd för TCP/IP också?

Permalänk
Medlem
Skrivet av heretic16:

Exakt så tänker jag.
Okej. Vanlig JavaScript och ChartJS ska nog duga för mig.

Kan vanlig JavaScript ansluta till databas också?

Inte vanlig JS i browsern, det vore en enorm säkerhetsrisk väl. Utan då anropar du ett API vanligtvis där servern anropar en databas och hämtar datat.

Däremot så kan du använda JavaScriptvarianten Node för att ansluta till databaser men det kan du inte köra i browsern utan är till för att t ex bygga backends.

Permalänk
Medlem
Skrivet av heretic16:

Exakt så tänker jag.
Okej. Vanlig JavaScript och ChartJS ska nog duga för mig.

Kan vanlig JavaScript ansluta till databas också?

Självklart, men man brukar göra det med NodeJS eller Ajax. Alltså på serversidan.

Skrivet av heretic16:

Sidan behövs uppdateras i realtid. Men JavaScript har väll stöd för TCP/IP också?

Då föreslår jag att du kollar på websockets och låter servern snacka med databasen. Då har du en kontinuerligt öppen anslutning mellan klient och server och skickar datan när den uppdateras. Klienten renderar om graferna som du skapar med ett litet bibliotek.

Här är första sidan jag hittade om att köra websockets på esp32: https://randomnerdtutorials.com/esp32-websocket-server-arduin...

Permalänk
Skrivet av noMad17:

Det är väl upp till dig.
Som sagt, om LTS är jätteviktigt så är inte ramverk/bibliotek vägen att gå.
Dessvärre kommer du då själv att behöva bygga all kod för de features du vill stödja.

Om du ska köra med ett ramverk vars kod du hämtar från ett CDN så kommer det, någon gång, att sluta fungera eftersom versionen inte längre stöds eller har flyttats etc. För varje externt beroende du använder tillkommer även en massa potentiella säkerhetsrisker som du då behöver hålla koll på och uppdatera versioner, vilket innebär att du kommer behöva in och ändra saker lite allteftersom.

Om tanken är att utomstående ska ha tillgång till din webbserver och trafik kan komma ifrån en mängd olika webbläsare skulle jag säga att LTS ändå är att glömma och då kan du lika gärna använda något ramverk.

Ok. Inget ramverk då. Bara ren JS och ChartJS.

Hmm...jadu...bra att du säger detta. Jag kanske ska tänka i andra banor då när det kommer till JS.

Skrivet av Mika3l:

Du kan absolut göra grafer med JavaScript. Alla nämnda ramverk och bibliotek är ju i grund och botten bara JavaScript som via sina APIer, struktur och hjälpfunktioner ger dig möjlighet att snabbare, enklare och mer optimerat göra vissa saker. Ingen av dom adderar någon unik feature som vanligt JavaScript inte klarar av.

Vad gäller just grafer specifikt så kan du absolut skapa egna men det är inte vidare enkelt förutsatt att du vill ha lite mer avancerade varianter. Det finns liksom inget inbyggt graf-API i JavaScript som man lätt kan använda utan du behöver skapa det själv och verkligen "manuellt bygga graferna". Så förmodligen är det en väldigt bra idé att kika på t.ex chart.js som någon nämnde så att du slipper det jobbet.

Jag ska titta på ChartJS. Så länge ChartJS inte går omkull efter en viss tid så föredrar jag det.

Skrivet av giplet:

Om du nu har programmerat i 10 år så borde du veta att du utvecklar mot en specifik version av ett ramverk. Litar du inte på att ChartJs inte uppgraderar och förstör din sida så tar du en kopia av js-filen och servar den själv. Då kommer den aldrig att uppgraderas med mindre än att du gör det själv.

Hur ofta uppdateras JS?

Skrivet av KAD:

Premissen att tvunget köra en webbserver på extremt enkel hårdvara har inte motiverats. "För att det är kul" är förstås en fullt giltig anledning, men när den kombineras med "behöver funka i 10 år", så börjar man ju undra.

Det finns många anledningar till att det är bättre att skicka upp data centralt och sedan presenentera den där. Det kräver förstås en del provisioning om man vill ha säker identifiering av varje enhet och internetuppkoppling blir ju då ett krav, men uppenbarligen finns redan nätverksanslutning i alla fall. Gör man så försvinner ju en stor del av diskussionen om vilket ramverk som är det bästa. Ta ett, byt om det var fel och möjligheten att säkerhetsuppdatera ramverket finns kvar utan att behöva röra enheten.

TLS är ju en sak att fundera över också. Webbläsare är ju ofta inte sugna på att ansluta utan https. Om några år kanske de vägrar helt om man inte går in och slår om någon obskyr inställning. Hur ska ett eventuellt servercertifikat hållas uppdaterat? Problemet att säkra dataflödet försvinner förstås inte om man skickar upp data centralt i stället.

Det jag tänker göra är att införskaffa en mikrokontroller som har ethernet. På denna mikrokontroller så kan man ha en webbserver på. Jag vill att denna webbserver skall kunna hosta upp en fin hemsida med lite funktionaliteter så som login, databas och plottar.

Https/http spelar ingen roll. Den kommer BARA vara på lokalt nätverk också.
Användaren kommer bara vara mig.

Det är därför jag är noggrann på att JS MÅSTE fungera för alltid på min webbserver. Därför söker jag LTS-teknologier för JavaScript. En orsak varför jag skriver mycket C kod, för jag ogillar uppdateringar. Jag kör C99. Alltså C standarden som skrevs 1999, det vill säga för 22 år sedan.

Jag hoppas dagens JavaScript kommer hålla över 20 år också.

Permalänk
Skrivet av monocles:

Självklart, men man brukar göra det med NodeJS eller Ajax. Alltså på serversidan.

Då föreslår jag att du kollar på websockets och låter servern snacka med databasen. Då har du en kontinuerligt öppen anslutning mellan klient och server och skickar datan när den uppdateras. Klienten renderar om graferna som du skapar med ett litet bibliotek.

Här är första sidan jag hittade om att köra websockets på esp32: https://randomnerdtutorials.com/esp32-websocket-server-arduin...

Ajax är ett tvättmedel! Måste jag ha NodeJS på min mikrokontroller?

Ja, webbsockets kommer jag titta på.
En ESP32 liknande pryl kommer jag använda. Men jag kör STM32H7 som har inbyggt ethernet-RJ45 uttag.

Permalänk
Medlem
Skrivet av heretic16:

Ajax är ett tvättmedel! Måste jag ha NodeJS på min mikrokontroller?

Ja, webbsockets kommer jag titta på.
En ESP32 liknande pryl kommer jag använda. Men jag kör STM32H7 som har inbyggt ethernet-RJ45 uttag.

Ajax är ett sätt att skriva asynkron JS. https://www.w3schools.com/js/js_ajax_intro.asp

Du klarar dig utan nodejs. Som sagt, låt webservern skicka data med websockets. Klienten renderar om när den får data. Inga ramverk. De enda beroendena är websockets och det eventuella grafbiblioteket du väljer.

Permalänk
Skrivet av monocles:

Ajax är ett sätt att skriva asynkron JS. https://www.w3schools.com/js/js_ajax_intro.asp

Du klarar dig utan nodejs. Som sagt, låt webservern skicka data med websockets. Klienten renderar om när den får data. Inga ramverk. De enda beroendena är websockets och det eventuella grafbiblioteket du väljer.

Jag vet

Japp. Det får bli så.
- LwIP
- ChartJS
- Vanlig JS

LwIP ändras typ aldrig. Hoppas inte ChartJS ändras heller. Så inte om 5 år så kommer biblioteket vara helt nytt.

Permalänk
Medlem
Skrivet av heretic16:

Jag vet

Japp. Det får bli så.
- LwIP
- ChartJS
- Vanlig JS

LwIP ändras typ aldrig. Hoppas inte ChartJS ändras heller. Så inte om 5 år så kommer biblioteket vara helt nytt.

Den version du använder kommer självklart inte att förändras. Du som kör en version av C från 99 borde väl ändå förstå detta? Om du inte litar på att den CDN du använder kommer servera samma version av din fil så får du helt enkelt hosta den själv, men det tycks ju vara omöjligt, så du får helt enkelt lita på det - eller bädda in hela biblioteket i ditt HTML-dokument - vilket också funkar.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz