2010-04-18 10 views
5

Ora sto pensando di stabilire il mio codice lato server in JavaScript e iniziare a fare tutto su di esso, ma voglio sapere della sua sicurezza e flessibilità rispetto a PHP.JavaScript sul lato server come PHP

Voglio sapere anche se può essere utilizzato con successo per sviluppare cose come forum forum, siti web completi e cose come questa, come fa PHP.

+0

Ma non sono davvero paragonabili. JS ha i suoi usi, ma sono tutti client-side, e PHP ha i suoi usi, ma sono per lo più lato server. È solo una domanda di curiosità o hai qualcosa di concreto in mente? – MJB

+0

Vuoi dire oltre al fatto che JavaScript può essere disattivato nel browser e, se credi in diverse fonti, fino al 10% dei tuoi visitatori non sarà in grado di utilizzare il tuo sito web perché lo hanno fatto? –

+0

Non mi è chiaro cosa stai chiedendo. Facendo "tutto su" Javascript, intendi cose come convalide del forum, o intendi uno stack web lato server con Javascript al suo interno? – Matchu

risposta

9

Javascript è solo ora iniziando a fare qualche presenza sul server, con le cose come ServerJS e nodeJS, ma in questo momento, si sarebbe probabilmente meglio fuori usando il PHP per il codice lato server, e javascript per l'abbellimento sul lato client.

+2

+1. specialmente NodeJS è spaventosamente veloce a causa di V8. – back2dos

+1

Aww, nessuno ricorda Netscape Enterprise Server e la sua interpretazione del JavaScript sul lato server? Era in anticipo sui tempi! E abbastanza orribile, ovviamente. – bobince

+0

@bobince: Oh, ricordo (vedi la mia risposta a Sarfraz sulla mia risposta). –

-1

In una parola: no. Javascript è un linguaggio lato client. Per fare le cose che stai descrivendo, hai bisogno di un linguaggio lato server come PHP.

MODIFICA: OK, tecnicamente è possibile implementare Javascript in altre aree oltre al browser, ma questo non è molto comune.

5 EDIZIONE DI ANNO: Beh, 5 anni dopo, questa risposta ovviamente non è accurata, con la popolarità di cose come node.js. Lascia che sia una testimonianza di quanto velocemente le cose possono cambiare!

+2

Javascript non è un linguaggio lato client. È un linguaggio che viene per lo più implementato lato client. ** Wow ** questa è una grande differenza. Uso sempre Javascript lato server. –

+0

@ T.J. Crowder: avresti potuto dare un suggerimento, il javascript è schierato dalla parte del cliente, si riduce allo stesso, non meno voto per quello almeno, ma ci sono persone troppo veloci troppo furiose e continuano a votare e chiudono anche le domande legittime. – Sarfraz

+0

A valle si passa a zero a causa della modifica. Grazie per aver dedicato del tempo per esaminare i commenti e modificare la risposta di conseguenza :) – Matchu

5

In genere, PHP e JavaScript funzionano in mondi completamente diversi e non sono realmente confrontabili. (Ci è un server-side version di JavaScript, ma è giusto dire non è ancora particolarmente diffusa, e non funziona su web hosting standard.)

I problemi di sicurezza che si sta per incontrare in JavaScript (il browser) lato sono molto diversi da quello che devi cercare in PHP.

Voglio sapere anche se può essere utilizzato con successo per sviluppare cose come forum forum, siti web completi e cose come questa, come fa PHP.

No, non con Javascript sul lato client. Per le applicazioni dinamiche, avrai sempre bisogno di un supporto linguistico lato server, sia esso PHP o qualche altro linguaggio come ASP, Python, Ruby, Perl ....

+0

Re * "Esiste una versione lato server di JavaScript, ma è giusto dire che non è ancora molto diffusa e non viene eseguita su hosting web standard." * IIS è una ** incredibilmente ** piattaforma di hosting web standard, diffusa e ha supportato Javascript per, oh, un decennio circa. Un'altra piattaforma molto diffusa è qualsiasi soluzione di hosting JVM, per la quale è possibile scrivere Javascript con Java. Non è ancora abbastanza diffuso come PHP, ma l'esecuzione su IIS e su qualsiasi soluzione JVM lo rende ampiamente disponibile e supportato. –

+0

@ T.J. Crowder: Ma il punto è, quanti host conosci il supporto JavaScript sul lato server? Inoltre, non esiste uno standard per JavaScript lato server, quindi ogni implementazione utilizza le proprie librerie e API, il che è fastidioso. –

+0

@musicfreak: il mio punto è che molte persone hanno pacchetti hosting * in questo momento * che supportano Javascript e non lo sanno nemmeno. Hai un pacchetto di hosting basato su IIS? Supporta Javascript sul server, a prima vista. Hai un pacchetto di hosting su Tomcat, Resin o qualsiasi altra cosa con una JVM? Supporta Javascript, a prima vista. Tra questi due, direi che stiamo guardando più della metà dei provider di hosting là fuori (perché anche se Apache ** domina ** il mercato, se si guarda, la stragrande maggioranza delle aziende che forniscono hosting Apache * anche * fornisce IIS o hosting JVM). –

-3

PHP e JavaScript sono due lingue diverse che fanno due diversi cose. Non si può sostituire l'altro. Molto probabilmente userete una combinazione dei due. JavaScript per cose lato client. PHP per roba lato server.

6

La domanda è molto, molto ampia. Interpretandolo come "posso usare Javascript sul server":

Fondamentalmente, certo, Javascript è un linguaggio molto potente e quindi puoi svilupparlo sul lato server proprio come puoi lato client (e se lo fai anche lo scripting lato client, ottieni alcuni vantaggi di riutilizzo definitivo usando Javascript sul server).

  • Per i sistemi di Apache, non c'è (plug-in FastCGI Javascript con connettori, utilizzando Google di Freaky-veloce V8 engine) il v8cgi project.
  • Sui sistemi basati su Microsoft, IIS supporta Javascript (JScript) sul server fuori dalla scatola (lo uso sempre), che ha accesso a tutto il materiale ActiveX (ad esempio, per parlare con i database, occuparsi di il file system, ecc.).
  • Se si basa JVM-framework del server, c'è Rhino, che è Javascript per la piattaforma Java e ha accesso a tutti (o quasi tutte) le librerie disponibili per Java   — ad esempio, un enorme ecosistema delle biblioteche e plug-in.
  • Oltre a v8cgi, ci sono un paio di altri progetti creati con il motore V8 di Google.
  • C'è un posto che fa uno stack completo per te chiamato chromeserver (non so quale sia il loro back-end, non ho intenzione di dedurre dal nome).
  • Paul mentionedServerJS e NodeJS.
  • C'è l'intero progetto CommonJS.

ecc ecc. Ecc. C'è un bel list on Wikipedia.

Discutendo contro, c'è un molto ecosistema ricco costruito intorno PHP. A meno che tu non stia usando qualcosa come Rhino per la piattaforma Java o JScript su IIS (a causa degli ecosistemi che sfruttano), potresti scoprire che non hai a disposizione quasi quell'ecosistema quando sviluppi in Javascript per il server. Voglio dire, se stai cercando un forum o un software wiki pre-compilato (per esempio), diciamo che non puoi far girare un gatto morto senza trovarne uno basato su PHP, e lo stesso non si può dire di Javascript sul server .

+0

@ T.J. Crowder: dovresti vedere JavaScript sul lato client: http://en.wikipedia.org/wiki/Client-side_JavaScript – Sarfraz

+1

@Sarfraz: Oh, assolutamente, Javascript ha avuto la maggior parte del suo successo sul lato client, non c'è dubbio. Ma chiamarlo "linguaggio lato client" significa pensare in modo molto ristretto (e non essere a conoscenza della storia del linguaggio, è stato usato sui server * da quando è stato creato *). –

2

Per sostituire PHP con Javascript, è necessario il Javascript sul lato server e su tale fronte si verificano molte cose. Mozilla Rhino esegue Javascript in cima alla JVM e sembra che Google stia lavorando anche su server side Javascript framework. Il più popolare implementazioni in-produzione sono:

  • Helma: Diversi progetti attivi lo usano, corre sul molo & Rhino e consente agli sviluppatori di sfruttare la potenza di JVM, ha un proprio framework MVC orientato agli oggetti
  • Project Phobos : corre su Glassfish & Rhino e consente agli sviluppatori di sfruttare la potenza di JVM, include plug-in per NetBeans e integra con jMaki Web UI framework
  • JSSP: Un framework lato server molto semplice, molto simile a ASP classico, JSP e PHP

Jaxer di Aptana ha mostrato molte promesse, specialmente portando il DOM al lato server, ma il progetto sembra morto ora. Da quanto ho capito, node.js non è un framework Javascript lato server nello stesso senso di Helma e Phobos. Invece può essere usato per scrivere server basati su eventi in Javascript (ad esempio: scrivere il proprio server web).

+0

@Abbas: +1 per i dettagli e quei collegamenti :) – Sarfraz

+0

Penso che lo sviluppo del framework JavaScript di Google si sia interrotto, perché quel post ha 3 anni e non ci sono nuove notizie su di esso. O lo tengono segreto o non ci lavorano più. –

0

Questo è un po 'off-topic, ma può realmente arrivare al cuore della tua domanda:
se si desidera utilizzare una sola lingua per le applicazioni web, si può vuoi dare un'occhiata a haXe.

Si tratta di un linguaggio multipiattaforma, che (tra gli altri obiettivi) compila sia in JavaScript che in PHP e in bytecode NekoVM. Per il JavaScript lato server, esistono i collegamenti NodeJS.

In questo modo non si è vincolati a una piattaforma specifica. Le API neko e PHP sono ampiamente compatibili, quindi è possibile distribuire su entrambe le piattaforme, avendo la possibilità di scegliere la velocità e la persistenza di neko o la facilità di implementazione di PHP.Si noti tuttavia che l'output di PHP ha un leggero overhead, sebbene gli ottimizzatori comuni come eaccelerator lo rendano appena visibile.

haXe è significativamente meno indulgente sia di JavaScript che di PHP. Ciò rende più difficile l'apprendimento, ma uno strumento molto più sicuro, robusto e alla fine più produttivo.

0

Sì, il mio site è scritto da node.js

Uso websvr, il suo stile di Java hanno filtro e gestori, hosting su sistema operativo Debian.