Quando e come si usa JavaScript lato server?

Occasionalmente cerco qualche aiuto JavaScript e mi imbatto nel termine “JavaScript lato server“. Quando useresti JavaScript lato server? E come?

Le mie esperienze di JavaScript sono state nel browser. Esiste una versione compilata di JS?

C’è il progetto Phobos , che è un framework JavaScript lato server.

Back In The Day, il server Web Netscape offriva anche script java lato server.

In entrambi i casi, JavaScript viene utilizzato proprio come si farebbe con qualsiasi lingua sul server. In genere per gestire le richieste HTTP e generare contenuti.

Rhino , che è il sistema JavaScript di Mozilla per Java, compila JavaScript nei codici byte Java, che la JVM può scegliere per JIT. Altri sistemi usano altri mezzi per l’esecuzione di script java, anche al punto che alcuni sono JIT che compilano i loro codici interni di script java.

Prevedo che ci saranno sempre più JavaScript sul server. Quando scrivi applicazioni “spesse” in JavaScript sul client, allora potresti anche essere in grado di scrivere la tua logica in JavaScript sul server per non dover fare salti cognitivi da una lingua all’altra. Gli ambienti saranno diversi, ma gran parte del codice e della conoscenza saranno condivisibili.

Infine, JavaScript è probabilmente il linguaggio singolare che ha il maggior numero di soldi puntato in questo momento in termini di implementazioni. Da Apple, Mozilla, Google, e anche Microsoft, nonché gli sforzi per renderlo un linguaggio ancora più avanzato (vale a dire fondamentalmente uno Schema con le macro di syntax Algol sans).

La maggior parte di queste implementazioni è nascosta nel browser, ma non è detto che non ci sia alcun valore sul lato server.

Gli strumenti sono il posto più grande dove manca JavaScript, soprattutto sul lato server, ma se si considera qualcosa come Phobos, in cui è ansible eseguire il debug del proprio lato server JavaScript nell’IDE, si tratta di un grande progresso.

Personalmente, sto rigirando JavaScript nelle mie applicazioni come la vernice bianca. Offre un’estensibilità economica a costi minimi ed è un ottimo strumento di abilitazione.

Non è AJAX, a meno che le persone non usino il termine in modo improprio. Come suggerisce il nome, SSJS è JavaScript che gira sul server, interpretato da un motore JavaScript autonomo (cioè indipendente dal browser), come SpiderMonkey.

Perché preoccuparsi? Bene, un’area che attualmente vedo sottoutilizzata è la convalida dei dati. Con SSJS scrivi un pezzo di codice che poi viene usato sia sul server che sul client. In questo modo si ottiene un riscontro immediato da parte del client JS sul lato client che corrisponderà automaticamente al controllo dei dati in corso sul server.

L’ASP classico era in grado di utilizzare JavaScript sul server, sebbene la maggior parte delle persone usasse VBScript.

Un uso convincente di JavaScript sul server è complementare alla convalida dei dati lato client. Ad esempio, è ansible utilizzare la stessa libreria di convalida JavaScript sul client e sul server. Questo garantisce che stai usando la stessa logica sul client mentre sei sul server, ma (potenzialmente) evitando un round-trip non necessario con la pre-validazione sul lato client.

Wikipedia elenca una serie di implementazioni JavaScript sul lato server qui .

NOTIZIE 2013

Node.js (vedi anche su Wikipedia articolo ) è un successo, e la sua comunità sta crescendo !

MongoDB (sul server), Chrome (sul client) e Node.js (sul server) utilizzano il motore JavaScript V8 .

PS: puoi utilizzare una sola lingua, Javascript, per tutti i tuoi moduli di progetto: API client, interfaccia client, “hub del server” e database del server (ad esempio stored procedure). Tutti i programmatori “codificano una volta”!


La distinzione principale tra le lingue “Server-Javascript” e “Client-Javascript” è spiegata su http://www.commonJS.org/ , la libreria standard per Server-Javascript .

CommonJS esiste dal 2009 e oggi (2013) è uno standard maturo , utilizzato in entrambi, MongoDB e Node.js.


NOTA STORICA: il più vecchio pacchetto attivo “client + server Javascript” (incluso l’uso di PostgreSQL) è vivo!
Rilasciato nel 2001 e in continuo sviluppo da allora, Whitebeam è una tecnologia Javascript (e DOM) matura. L’ultimo aggiornamento è stato a gennaio 2016.


NOTIZIE 2016

Il motore Node.js continua come un runtime costruito su JavaScript V8 di Chrome … E ora è, infatti, un successo consolidato! Le ultime versioni sono v7.0 e v6.8 LTS .

JSON , come formato di interscambio di dati, ha un crescente interesse crescente negli ultimi anni, avendo superato nel 2016 l’interesse per XML (vedi anche nel contesto scientifico, dove è stato superato nel 2011 ). Come il formato Javascript nativo, è anche un buon indicatore di tendenza della lingua.

Il motore V8 (più veloce) è anche il più utilizzato dal 2014: nel client più diffuso ( Chrome su desktop e WebView su Android) e popolare sui server : Node.js come runtime e PostgreSQL con PL / V8 per SQL e stored procedure .

… Forse il contributo più importante lato server nel 2016 è stato un supporto veloce e affidabile per database JSON e Javascript: con PostgreSQL 9.1+ (2016-10) è ansible caricare PL / V8 (e dialoghi come Coffeshop) tramite semplice Comando CREATE EXTENSION ; con PostgreSQL 9.5+ (2016-10) il più importante, un set ortogonale completo di funzioni e operatori JSON e JSONb .

Quindi, di fatto, esiste uno stack di sviluppo JavaScript unificato veloce, resiliente e affidabile.

Potrebbe fare riferimento all’utilizzo di javascript per inviare messaggi a un server Web senza ricaricare la pagina: in altre parole, AJAX.

Ma più probabilmente penso che significhi qualcosa come Aptana / Jaxer (o, oggi, Node.js), che usa javascript per un linguaggio lato server. In questo caso, ricorda che javascript è solo una lingua: il DOM utilizzato in un browser web è una sorta di API. I motori javascript lato server avrebbero fornito i propri oggetti API, adattati alle attività sul lato server come l’accesso al DB e al file system.

Il javascript lato server è un’idea interessante a causa del problema di convalida sul lato client: si desidera eseguire la convalida lato client per evitare di inviare richieste inutili al proprio server. Ciò migliora le prestazioni del server e riduce la latenza sul client. Ma devi fare la validazione lato server perché non puoi fidarti del client. Ciò si traduce in un sacco di codice duplicato tra il client e il server.

La teoria è che se la tua lingua client e server corrisponde non avrai più bisogno di due implementazioni della stessa logica. In pratica non funziona così bene, perché le visualizzazioni client e server di una richiesta di pagina sono così diverse e perché non controlli il motore javascript utilizzato dal client.

Dipende davvero se stai parlando di ASP.NET o di ASP classico. Se stai usando ASP.NET non ci sono molti buoni motivi per usare Javascript.

ASP Classic è un caso diverso. È ansible utilizzare Javascript sul lato server in ASP nello stesso modo in cui si utilizza VBScript. È ansible accedere agli oggetti Applicazione, Server, Richiesta e Risposta esattamente come tramite VBScript.

Ci possono essere dei vantaggi reali nell’utilizzare Javascript sul lato server in ASP piuttosto che in VBScript. Significa che puoi condividere il codice tra il codice del browser e il codice del server. Significa anche che i tuoi sviluppatori non hanno bisogno di gestire due lingue diverse.

Tuttavia, ci sono alcuni aspetti negativi del lato server Javascript in ASP. In primo luogo, non sembra essere veloce quanto VBScript sul lato server alla concatenazione di stringhe. Inoltre, non è buono come effettuare chiamate a oggetti COM come VBScript (è ansible recuperare solo i dati dalle chiamate COM tramite il valore restituito, anziché tramite i parametri out / byref).

Potresti voler avere alcune funzionalità sia nel browser che nel server per avere la stessa identica implementazione.

Un esempio potrebbe essere un renderer per una syntax wiki, eseguito nel browser per l’editor WYSIWYG e sul server per il rendering della pagina risultante. In questo modo sai che entrambi i risultati renderizzati saranno esattamente gli stessi in entrambi i casi.

Apparentemente Rhino può compilare le classi da JavaScript a Java.

Tradizionalmente, Javascript gira attorno al modello di object del documento. Ma cosa succede se lavori per un negozio Java e vorresti un motore di scripting attorno al tuo modello di oggetti personalizzato? Ecco quando arriva JavaScript sul lato server.

http://en.wikipedia.org/wiki/Server-side_JavaScript

Ricordo con Cocoon (il framework MVC di Java / XML / Javascript di Apache) che usavo Javascript dal lato server poiché c’era qualcosa (credo cforms) che doveva essere scritto in Javascript ed era in esecuzione sul server anche se ti credo potrebbe scrivere in Java.

A quel tempo usavamo Rhyno, per favore controlla: http://peter.michaux.ca/articles/server-side-javascript-with-rhino-and-jetty

http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html

Scopri come Steve Yegge sta usando JavaScript lato server con Rhino e perché. Ha un sacco di cose su come si sente che JavaScript sia in arrivo.

Sì, ho appena letto su SSJS su un blog di un ragazzo di nome John Resig .

Descrive un motore chiamato Jaxer, che dice “Immagina di strappare la parte di rendering visuale di Firefox e sostituirla con un hook ad Apache – in parole povere è quello che è Jaxer.”

Per chiunque conosca ASP.NET L’HTML sembra familiare

        

Nota runat = “sever” e runat = “both”

Con ASP è ansible utilizzare il lato server JavaScript in vari modi. Il modo in cui lo uso più comunemente è avere lo stesso codice in esecuzione sul client e sul server per la convalida .

file.js

 <% //javascript code function example(){return "Hello, World!";} //%> 

file.html

 <%@LANGUAGE="javascript"%>        <%=example();%>    

file.js inizia e termina come fa per consentire l’inclusione dello stesso file.