benediktmagnus / karopapier Goto Github PK
View Code? Open in Web Editor NEWKaropapier, ein Onlinezeichenpapier zum Erstellen von Karten.
Home Page: http://karopapier.achtmal.de
License: MIT License
Karopapier, ein Onlinezeichenpapier zum Erstellen von Karten.
Home Page: http://karopapier.achtmal.de
License: MIT License
Ich denke nicht dass das Projekt zu klein für jQuery ist. Es ist sicherlich zu klein um irgendein vollständiges Framework wie Angular, React oder Ember zu verwenden. Aber jQuery bringt dir eine kleine Toolbox an Kram der dir die Arbeit erleichtern kann. Beispiele dafür bzw. wie man das dann in Plain JS macht sind unter
http://youmightnotneedjquery.com/ zu finden.
Vielleicht liegt es auch an der Herangehensweise, aber ich mache viele visual changes indem ich Klassen an Elemente hänge und wieder wegnehme, und allein dafür ist es einfach viel aufgeräumter:
$(el).addClass(className);
vs.
if(el.classList)
el.classList.add(className);
else
el.className += ' ' + className;
Klasse entfernen analog. Außerdem ist es deutlich Robuster als Plain JS was verschiedene Browser-Verhalten angeht. Das ist mir persönlich die 68KB extra (die in vielen Fällen vom Browser sowieso schon gecached sind) wert.
Natürlich ist das nicht lebensnotwendig und ich würde gern Argumente dagegen hören.
Was ich meine ist dass eine Message die potentiell eine Antwort geben könnte das auch immer tun sollte:
socket.on('KarteHolen', function (KarteGeben)
{
let Karte = socket.Karte;
if (Karte == undefined) return;
KarteGeben(KarteSerialisieren(Karte));
}
);
Wenn vorher kein KarteSetzen aufgerufen wurde (durch Programmierfehler o.Ä.) oder eine Karte angefragt wurde die nicht existiert dann kommt da einfach gar nichts zurück. Das macht es schwierig zu entscheiden ob der Server einfach lange braucht zum Antworten oder ein Fehler aufgetreten ist.
Auch wenn das Minifying jetzt automatisch passiert wenn man die Applikation startet halte ich es doch für schlechten Stil das zu tun. Dadurch sind Runtime-Dependencies nötig die auch bequem Dev-Dependencies sein könnten (clean-css, html-minifier, uglify-es). Die Alternative wäre es einen Buildprozess mit Grunt/Gulp/Webpack/Rollup/etc. aufzusetzen und den "Build" komplett außerhalb der Applikation zu haben. scripts/Kompressor.js könnte dann weg und der selbe Effekt wäre durch eine einfache JSON-Datei erzielt anstatt 150 LOC dafür zu haben die man dann auch noch warten muss.
So könnte vielleicht? etwas Brandbreite gespart werden.
Wenn wir die Palette statisch irgendwo zum Beispiel oben platzieren würden, dann könnte man quasi ein Malen ermöglichen, zum Beispiel Paint.
Die Malreihenfolge wäre dann:
Vielleicht kann man das auch anpassen, z.B. über Settings
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.