Warum sollte ich serverseitiges JavaScript verwenden?

7

Ich bin verwirrt, ich lese regelmäßig über serverseitige JS, warum sollte ich das benutzen wollen? Es scheint, als würde es viel langsamer als jede andere Sprache ausgeführt werden, es fehlen auch viele Konventionen, die anspruchsvollere Sprachen haben.

Ist es möglich, ganze Objekte vom Client an den Server zu übergeben, sie zu manipulieren und zurückzugeben?

Nur kämpfen, um die Konzepte davon zu verstehen.

    
JP Silvashy 15.12.2009, 19:04
quelle

13 Antworten

8
  • Ich denke, Sie können nichts über die Geschwindigkeit von JavaScript sagen, ohne zu wissen, wo es läuft. Ich denke ein V8 könnte eine Skriptsprache wie Ruby oder Python schlagen.
  • JavaScript ist meiner Meinung nach viel klarere Sprache als beispielsweise PHP oder Perl. Aber das ist nur meine persönliche Meinung.

Warum nicht?

Interessante Links: v8cgi , Knoten. js , wxJavaScript und last but not least CouchDB (ein mit JavaScript betriebener Datenbankserver)

    
TheHippo 15.12.2009, 19:42
quelle
8

Ja, Sie können ganze Objekte vom Client an den Server übergeben, sie manipulieren und mit JSON zurückgeben. Sie können auch Code zwischen dem Client und dem Server freigeben.

    
Annie 15.12.2009 19:46
quelle
8
  

Warum sollte ich das benutzen?

Es reduziert die Anzahl der Sprachen, die in Ihren Projekten verwendet werden. Für eine moderne Webapp benötigen Sie Entwickler mit einigen JavaScript-Kenntnissen, und wenn Sie nur JavaScript-Kenntnisse benötigen, haben Sie eine größere Auswahl an Arbeitskräften, als wenn Sie JavaScript + Java oder JavaScript + benötigen C # oder JavaScript + alles.

  

Es scheint so, als würde es viel langsamer ausgeführt werden als so ziemlich jede andere Sprache,

Können Sie irgendeinen Grund angeben, warum Sie das glauben? Sicherlich ist dies eine Frage der VM-Implementierung und daher können Sie keine definitive Aussage treffen. Außerdem ist es fast eine Binsenweisheit, dass Webapplikationen in der Regel mit DB-Zugriffen und nicht mit CPUs blockiert sind.

  

es fehlen auch viele Konventionen, die anspruchsvollere Sprachen haben.

Ähm ... Nein? Heutzutage ist JavaScript (oder, richtigerweise, ECMAScript) eine ziemlich anspruchsvolle Sprache für sich. Es hat Ausnahmen, Schließungen, assoziative Arrays ... wirklich alles, was Sie brauchen.

  

Ist es möglich, ganze Objekte vom Client an den Server zu übergeben, sie zu manipulieren und zurückzugeben?

Nicht die Objekte als solche, da das zugrunde liegende Protokoll immer noch HTTP ist, aber die Verwendung von JSON ist eigentlich fast das Gleiche.

    
Michael Borgwardt 15.12.2009 20:02
quelle
3

Wenn Sie die Sprache kennen und mit ihr auf wirklich hohem Niveau arbeiten können, warum möchten Sie dann in eine andere Sprache wechseln? In diesem Moment gibt es wirklich nette und schnelle serverseitige JS, die nodejs genannt wird. Meiner Meinung nach beweist Nodejs, dass serverseitiges JS kein gutes Beispiel für Realität ist.

    
nemisj 15.12.2009 19:21
quelle
1

Vergiss nicht, dass du all deine clientseitige Güte bekommen kannst, die Mootools und andere dir geben, aber auf der Server-Seite macht das Programmieren eine pure Freude, wenn du das in Gang bringst. Was die Geschwindigkeit betrifft, hängt davon ab, was Sie tun müssen. Wir haben eine Website, die 1000 Zeilen Code in JScript ASP pro Seitenanforderung, 60.000 Benutzer pro Tag, 1000 Seiten ausführt. Es ist blitzschnell! So schnell, dass der Fall für die Neucodierung in .net einfach nicht stark genug ist, da der aktuelle Code das perfekt beherrscht.

Writting Javascript client Seite kann Ihren Kopf ein bisschen auf den ersten, weh tun, keine Elemente mit nur schönen Codierungsstil mit einigen wirklich skurrilen Feature (wir übergeben eine störende Funktionen / Schließungen in unserem DB-Code wie zum Beispiel:

%Vor%

Nun, das ist ziemlich mächtig und macht auch verdammt viel Spaß, und die Zeit, die wir damit verbracht haben, Mootools oder Advanced JS zu lernen, ist nicht verschwendet, da wir es sowohl auf der Serverseite als auch auf der Clientseite verwenden können.

Wir können dieselbe Validierungslogik, dieselben JSON-Funktionen, dieselben Objekte (wenn Sie vorsichtig sind) und so weiter verwenden. ASP mit JScript ist 100-mal besser / sauberer / einfacher / netter als VBScript und macht meine Arbeit eher zu einer Freude als zu einem VBScript-Kopfschmerz.

Und am wichtigsten, es macht verdammt viel Spaß!

    
Pete Duncanson 15.12.2009 20:15
quelle
1
  

Ich bin verwirrt, ich lese regelmäßig darüber   serverseitiges JS, warum sollte ich das wollen?   verwenden Sie das?

Damit Sie alle Ihre Apps in einer einzigen Sprache schreiben können. Damit können Sie Objekte zwischen Server und Client teilen, ohne Serialisierung / Konvertierung / etc. Damit Sie Code einmalig schreiben können (zB Feldvalidierung)

  

Es scheint so, als würde es so ausgeführt werden   langsamer als so ziemlich alles andere   Sprache,

Nicht wahr. Die Wahrnehmung von JS ist langsam, weil es auf der Client-Seite verwendet wird. Engine-Implementierungen waren ziemlich langsam und es gab auch die DOM-Probleme.   Es wurde gezeigt [1], dass JS in der Leistung an C heranreichen kann. Und das war letztes Jahr. Es gab weitere Leistungsverbesserungen. Überprüfen Sie auch die [Benchmarks von Node.js Webserver gegen andere [2].

  

es fehlen auch viele Konventionen, die anspruchsvollere Sprachen haben.

Sie meinen Sachen wie [closures, generators, map / reduce [3], [Funktionen höherer Ordnung, dynamische Typisierung und ein prototypbasiertes OO-Paradigma, flexibler als klassenbasiertes OO [4]?

  

Ist es möglich, ganze Objekte zu übergeben?   vom Client zum Server,   manipuliere sie und gib sie zurück?

Es [5] ist [6].

- MV

1: shaver.off.net/diary/2008/08/22/the-birth-of-a-faster-monkey/   2: four.livejournal.com/1019177.html   3: ejohn.org/blog/javascript-18-progress/   4: www.ibm.com/developerworks/java/library/j-cb12196/index.html   5: www.jaxer.org/   6: juicejs.org /

    
mvalente 16.12.2009 11:56
quelle
1
  

ah, aber sind diese Interpreten nicht   Teil der Clients Browser, sie   wahrscheinlich werden diese nicht zur Verfügung haben   ihr Server

Besuchen Sie www.commonjs.org

- MV

    
mvalente 16.12.2009 11:59
quelle
1

Javascript ist nicht langsam; Das DOM ist.

    
user239237 06.03.2010 11:21
quelle
1

Nachdem ich nodejs schon eine Weile benutzt habe und einen mongodb-Treiber dafür geschrieben habe, muss ich sagen, dass ich sehr beeindruckt bin. Vor allem, da ich Mongo verwende, der JSON-Objekte speichert, habe ich einen Client zur DB-Pipeline, das ist alles Javascript.

Also, während ich immer noch Ruby bei der Arbeit benutze, bin ich für alle persönlichen Projekte in Javascript umgezogen, weil ich faul bin und den ständigen Kontextwechsel zwischen SQL, Ruby, Javascript nicht ertragen kann.

Und wenn für nichts anderes. NodeJS ist ein fantastischer Weg, um eine Sprache neu zu lernen, in die nur wenige von uns jemals viel Energie investiert haben und die Sie nur zu einem stärkeren Webentwickler machen kann: D

    
christkv 14.03.2010 01:47
quelle
1

Ich kam zu spät. JavaScript / ECMA-Script ist eine grundlegende Sprache, die an jede Bibliothek gebunden werden kann. Wenn es in einem Browser verwendet wird, stellt es der Sprache mehrere Objekte auf Browserebene (Fenster, Dokument usw.) zur Verfügung. Die Skripts, die Sie in .html-Dateien einbetten oder als .js-Dateien verknüpfen, sind so programmiert, dass sie die gewünschten Operationen für diese Objekte ausführen.

Dasselbe Konzept gilt auf der Serverseite. Zum Beispiel stellt NodeJS HTTP-Server- und Client-Objekte zur Verfügung und Sie können die gleichen Dinge tun, die Sie in PHP, CGI-Skripten, Python- oder Ruby-Frameworks oder Apache-Modulen tun würden.

Googles V8-JavaScript-Engine mit JIT ist sehr gut optimiert. Es wird sowohl in Chrome (Browser) als auch in NodeJS (Server) verwendet.

Ich verwendete JavaScript im Browser, um AJAX-Aufrufe und Python / WSGI für den Server auszuführen. Diese gemischte Art der Programmierung hat mich geärgert. Seit ich NodeJS entdeckt habe, kann ich sowohl serverseitig als auch clientseitig in derselben Sprache programmieren. Überraschenderweise ist der NodeJS-Durchsatz mehr als doppelt so hoch wie bei Python. Es gibt einige detailliertere Analysen bei nodejs.org. Das einfache Mitnehmen ist, dass JS bei der Verwendung von V8 den C / C ++ - Geschwindigkeiten sehr nahe kommt.

    
CyberFonic 20.07.2010 09:46
quelle
0
  

Hmm .. du sagst alles von der Kundenseite   Güte, aber wirklich die meisten   Client-Seite stopft diese Bibliotheken   bieten ist meist DOM Manipulation,   yah?

Sie tun es. Aber Sie könnten jquery verwenden (zum Beispiel), um HTML serverside zu generieren.

>

- MV

    
mvalente 16.12.2009 12:05
quelle
-2

Serverseitig JScript ist nur eine weitere Sprache in der .NET-Sprachfamilie. In Bezug auf Syntax und Funktionen ist es so ziemlich das Javascript, das wir von der Client-Seite kennen, mit einem offensichtlichen und sehr signifikanten Unterschied, dass es auf dem Server ausgeführt wird.

Daher ist die Umgebung die Standard-.NET-Umgebung, die Sie für ein Programm in einer beliebigen .NET-Sprache erwarten würden, und insbesondere gibt es kein DOM. Das serverseitige JScript unterliegt den gleichen Einschränkungen wie jedes andere serverseitige Programm. Insbesondere gibt es keine Möglichkeit, ein clientseitiges JavaScript-Objekt direkt an ein serverseitiges Programm zu übergeben.

Leistungsstarker JScript-Code ist gleichwertig mit jeder anderen Sprache, da serverseitiges JScript kompiliert und nicht interpretiert wird. Es gibt einen gewissen Overhead, der durch Typenzerzwänge eingeführt wird, aber er ist minimal.

Warum sollten Sie JScript verwenden - hauptsächlich weil es eine Skriptsprache ist. Wenn Sie eine Sprache benötigen, die von den Benutzern Ihres Programms verwendet werden kann, um einige einfache Bedingungen und / oder Berechnungen auszudrücken, können Sie JScript als eine Möglichkeit zur Bereitstellung dieser Ausdrücke empfinden. Zumindest für mich hat es wirklich gut geklappt

    
mfeingold 15.12.2009 19:21
quelle
-5

Die beste Antwort finden Sie auf dieser Seite

"Eine der beliebtesten Methoden, um moderne moderne dynamische Webseiten zu erstellen, sind serverseitige Skriptsprachen. Diese dynamischen Seiten sind so aufgebaut, dass alle Serverprozesse stattfinden, bevor die Seite an den Benutzer geliefert wird." bedeutet, dass Sie nur die grundlegendste Internet-Browsing-Software benötigen, um die komplexesten und dynamischsten Seiten im Web heute zu sehen . "

Dies gibt auch mobilen Browsern die gleiche Erfahrung, die der komplette PC Browser sieht.

    
Michael Boggess 15.12.2009 19:18
quelle

Tags und Links