Let's not use Javascript names for things here here: you mean shared code between client and the server.
Like everything else in the area, I have already done this in the take-home: https://github.com/noredink/take-home#support-summary It was very, very nice. It allows for seemless APIs that simplified the code sharing a whole bunch. On Mon, Jan 9, 2017 at 12:24 PM, 'Rupert Smith' via Elm Discuss <[email protected]> wrote: > Just wondering if there is anyone out there interested in isomorphic > applications with Elm? or has tried experimenting with isomorphic Elm? > > Now that I have the same view code running on server and client side, it > occurs to me that I am potentially getting into isomorphic web development. > If I understand it right, and isomorphic app is one which is written in > javascript in order to run the same code client or server side. Some or all > of the page rendering is done server side, then whatever has been rendered > plus the application state is handed over to the client, and the client > displays it or completes or enhances the rendering. The idea is to be able > to get the best of both worlds without having to write the code twice; once > in javascript for the client and once in some other language for the server. > > In my case, I am using server side rendering just for (relatively) static > content, so there is practically no application state. I am pretty much > there with this simple application model as far as being isomorphic goes. > > I believe there is something called the 'isomorphic hand-off' which refers > to the transfer of state from server to client, once the server rendering > has completed. I think this needs to go something like this: > > Run Elm on Server to produce HTML + a little bit of javascript to request > everything needed to complete on the client. > Show HTML on the client as quickly as possible (that is, don't download the > Elm code just yet). > Trigger the loading of the javascript needed to complete the client side > rendering (the same Elm program as was run on the server). > Start up the Elm program and request the state from the server. > Continue rendering from where the server side left off. > > I'm really not sure what exactly the difference is between isomorphic and > progressive enhancement. What I am actually trying to do is to add an > editing mode on the client side - so client and server side renderings will > be very different and more capabilities will be available in client editing > mode. For this reason, I don't think isomorphic is really what I am after, > but I can't help wondering if Elm provides a very neat starting point for > doing it. > > I think Elm might be very well suited to isomorphic, so long as you keep the > model clean and don't put any functions in it. If it is easy to > encode/decode the model, then it becomes almost trivial to write the > isomorphic hand-off? > > -- > You received this message because you are subscribed to the Google Groups > "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
