2015-09-26 25 views
8

Penso che Haskell offra caratteristiche fantastiche. Adatto anche per lo sviluppo Web. Tuttavia, una caratteristica che mi manca. Rendering lato server. I motivi sono indicizzazione di crawler e pre-rendering di Google per aumentare le prestazioni sui dispositivi mobili.È possibile eseguire il rendering lato server Haskell con Ghcjs, Rapidità, Olmo, ecc.?

E 'possibile eseguire il rendering lato server Haskell con Ghcjs, Haste, Elm o con qualche altro compilatore Haskell-> JS?

risposta

3

Stock Lo scaffold Yesod esegue il rendering lato server dell'HTML e ha linguaggi pre-elaborati personalizzati per HTML, CSS e JS. Dovresti essere in grado di integrare Fay/Purescript senza troppi problemi dato che sono in giro da un po 'e yesod viene fornito con scaffold per almeno uno di essi.

Per qualcosa come l'integrazione di GHCJS, si vedranno molti progressi nelle prossime versioni dello strumento stack (ad esempio this issue). Ciò renderà teoricamente possibile realizzare Haskell a pila intera senza troppi problemi. In questo momento, sono a mia conoscenza che l'integrazione di GHCJS non è banale.

4

Non credo che Alexandr abbia risposto alla domanda.

La domanda è se i framework web Haskell eseguono il rendering lato server di JavaScript - vanilla JS o JS-via-Haskell (GHCJS, Fay, ecc.). La mia comprensione è che Yesod non esegue il pre-rendering di JS (ad es., Esegue il JS e serve l'HTML risultante). Piuttosto, Yesod esegue la generazione di HTML sul lato server tramite hamlet (o blaze-html o lucid, a seconda delle preferenze).

L'unica libreria che ho potuto trovare per il rendering Haskell JS lato server (per angolare) è:

https://github.com/danchoi/ngrender

Ma è ancora in fase beta.

Se ci sono altre librerie/soluzioni, mi piacerebbe sentirle. Questo è un problema anche per me. Voglio usare purescript-alogeno sul client, ma ... SEO.

Edit: Per ora, l'opzione migliore potrebbe essere quella di utilizzare nginx come bilanciamento del carico di fronte al vostro server di Haskell con prerender.io per la fornitura di JS-pagine resi ai bot di ricerca:

https://github.com/prerender/prerender

https://gist.github.com/thoop/8165802