2015-09-26 22 views
8

Ich denke, dass Haskell fantastische Eigenschaften bietet. Auch für die Web-Entwicklung geeignet. Allerdings vermisse ich ein Merkmal. Serverseitiges Rendering Die Gründe dafür sind Google-Crawler und Pre-Rendering, um die Leistung auf Mobilgeräten zu steigern.Ist es möglich, Haskell-Frontend mit Ghcjs, Haste, Elm usw. serverseitig zu rendern?

Ist es möglich, Haskell-Frontend mit Ghcjs, Haste, Elm oder mit einem anderen Haskell-> JS-Compiler serverseitig zu rendern?

Antwort

3

Lager Yesod Scaffold macht serverseitiges Rendern von HTML und verfügt über benutzerdefinierte vorverarbeitete Sprachen für HTML, CSS und JS. Sie sollten in der Lage sein, Fay/Purescript ohne ein allzu großes Problem zu integrieren, da sie schon eine Weile da sind und jaod mit Gerüsten für mindestens einen von ihnen kommt.

Für etwas wie GHCJS-Integration, sehen Sie eine Menge Fortschritte in bevorstehenden Versionen der stack Werkzeug (z. B. this issue). Theoretisch wird das Full-Stack-Haskell ohne großen Aufwand möglich. Im Moment verstehe ich, dass die Integration von GHCJS nicht trivial ist.

4

Ich glaube nicht, dass Alexandr die Frage beantwortet hat.

Die Frage ist, ob Haskell-Web-Frameworks Server-Side-Rendering von JavaScript - Vanille JS oder JS-via-Haskell (GHCJS, Fay, etc.) tun. Ich verstehe, dass Jessod JS nicht vorrendert (d. H. JS ausführt und den resultierenden HTML-Code bereitstellt). Eher macht Jessod serverseitige Generierung von HTML über Hamlet (oder Blaze-HTML, oder klar, je nach Ihren Vorlieben).

Die einzige Bibliothek, die ich für Haskell serverseitige JS-Rendering (für Angular) finden könnte, ist:

https://github.com/danchoi/ngrender

Aber es ist immer noch in der Betaphase.

Wenn es andere Bibliotheken/Lösungen gibt, würde ich gerne von ihnen hören. Das ist auch ein Problem für mich. Ich möchte auf dem Client purescript-halogen verwenden, aber ... SEO.

Edit: Vorerst ist die beste Option könnte sein, nginx als Lastenausgleich vor Ihrem Haskell-Server mit prerender.io zu verwenden gemacht JS-Seiten zu liefern Bots suchen:

https://github.com/prerender/prerender

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