Ich bin auf der Suche nach der besten Möglichkeit, Web-Anwendungen zu schreiben, die schwer mit JavaScript sind. Daher möchte ich Ihnen meine Ideen vorstellen und Sie bitten, Ihre Meinungen und Alternativen dazu zu lesen:)
Vor 1 Jahr habe ich angefangen, nach Möglichkeiten für Web-Entwicklung neben PHP zu suchen. Ich habe JSP und Django gefunden. Ich beschloss, mit Django zu gehen. Nachdem ich einige Projekte mit Django gestartet habe, kam ich zu dem Schluss, dass Django für mich keine Möglichkeit für eine einfache Webentwicklung bietet. Ich muss mir Sorgen um zu viele Funktionen und vor allem die Notwendigkeit, Client-und Server-Code in Balance halten.
Also begann ich wieder zu suchen und fand CouchDB, die eine Art cooles Back-End für Ajax-Anwendungen bietet. Meine Idee war, CouchDB als Datenbankserver zu verwenden, der nur Datenvalidierung & amp; Speicher und hielt alles andere zum Client. Was anscheinend keine neue Idee ist, aber ich habe noch kein gutes Beispiel dafür gefunden. Kennst du etwas?
Ich hätte gerne eine Architektur mit folgenden Komponenten:
Haben Sie Vorschläge für verschiedene Software für diese Punkte?
Für Anfragen wie die folgenden:
Die erste Anfrage sendet JavaScript-Dateien und einfaches HTML (nur <body>
und <head>
-Tags) an den Client. Die geladenen JavaScript-Funktionen erstellen den HTML-Code und fügen ihn in das <body>
-Tag ein. Von nun an fordert die gesamte Navigation auf der Website nur JSON an, das über den Websocket bereitgestellt und vom clientseitigen JavaScript verarbeitet wird.
Pros:
Nachteile:
Fragen
Sehen Sie sich auch Antwort 2
Kennen Sie eine verfügbare Lösung für diese Art von Web-Entwicklung?
Sehen Sie sich couchapps an. Es ist von den Jungs hinter cochedb geschrieben. Es basiert auf jQuery, aber es wäre nicht so schwer es mit motools zu konvertieren. Es gibt auch eine nette JavaScript-Vorlagen-Engine namens Schnurrbart . Die Template Engine funktioniert auf beiden Seiten, Browser und Couchdb.
Würde das Schreiben von Web-Anwendungen auf diese Weise kurbeln?
Nein. Dies ist die Art und Weise, wie die meisten Google Apps (Mail, Docs, Tabellenkalkulation) funktionieren, es gibt auch eine Reihe von Frameworks wie Sproutcore oder Cappuccino.
Webserver: welcher Dateien und WebSockets oder Polling (Tornado oder Eventlet)
Ich denke, dass couchdb auch damit umgehen wird
Obwohl eskimoblood die meisten Fragen beantwortet hat, gibt es immer noch ein großes Problem bei "meinem" beschriebenen Ansatz der Entwicklung von Webanwendungen: Die Vorlagensprache
Wie oben erwähnt, gibt es viele, die auf der Client-Seite mit Javascript arbeiten. Aber meiner Meinung nach fehlt ein großes Feature für alle Template-Sprachen, die ich bisher entdeckt habe: Die Update-Funktion
Ich meine nicht, die gesamte Vorlage beim Aktualisieren neu zu rendern, aber ich würde gerne eine Template-Sprache sehen, die nur meine geänderten Variablen aktualisiert.
Stellen Sie sich vor, ich lese gerade ein Blog, das 25 JSON-Variablen und eine große Vorlage zum Rendern enthält. Plötzlich gibt ein mutiger Mann irgendwo auf der anderen Seite des Planeten einen coolen Kommentar ab. Nun gibt es verschiedene Möglichkeiten, den aktuellen Lesern ein "Live-Update" zu präsentieren:
Nun denken Sie vielleicht, das ist kein Problem mit ein wenig Java-Scripting. Aber ich möchte eine Template-Sprache, die das automatisch macht. Eine Vorlagensprache, die ihren aktuellen Status kennt und nur den Header aktualisiert, wenn der Header geändert wird. Oder vom alten zum neuen Teaserbild.
Auf diese Weise konnten wir viele benutzerdefinierte Update-Skripts speichern. Ich müsste mich nicht um Animationen kümmern, wenn ich die Struktur der Seite ändere, und wir könnten den Netzwerkverkehr optimieren, da wir nur die Updates und nicht den bereits bekannten Teil der aktuellen Dokumentdaten liefern.
Ich habe Trimpath Javascript-Vorlagen für die letzten paar großen Projekte verwendet und bin sehr zufrieden mit es.
Ein paar andere Teile meines Workflows, ohne die ich nicht leben könnte:
ein Build-Prozess für javascript und CSS. Es ist soooooo viel besser, meine js und css Dateien organisieren zu können wie ich will, sie in kleine Stücke zu zerlegen und sie automatisch zu einer großen Datei zusammenrollen zu lassen
LessCSS - eine Verbesserung gegenüber der normalen CSS-Syntax. Sie schreiben Ihre Stylesheets mit dem LessCSS-Syntax, der wie CSS ist, aber Sie können Dinge wie Variablen, Mathematik, Mixins, verschachtelte Klassen verwenden. Die LessCSS-Engine kompiliert sie dann in reguläres CSS.
Tags und Links javascript mootools html5 templates couchdb