Thomas,
I as well think modules is the right approach when using web workers.

What can I do if my app code is build from many namespaces? How do I tell 
the main module to use all of them? Do I have to list them ALL?


On Friday, February 19, 2016 at 5:54:59 PM UTC+2, William la Forge wrote:
>
> Compiling with optimizations none is no doubt quite handy, especially in 
> conjunction with source maps, as a traceback will take you to the line of 
> code causing the problems, and with the same variable names used in your 
> original clojurescript code. But this is not currently possible for .jc 
> files used by web workers as the unoptimized .js file contains a reference 
> to js/window--and window does not exist in a web worker.
>
>
> You should still be able to use optimizations none with your main 
> javascript code, but you will need to compile your main code and your web 
> worker code separately so that you can use different optimizations as 
> appropriate. And you can do this so long as your not using shared workers. 
> The question then is, how to compile the .js files separately.
>
> The duracell <https://github.com/aatree/aademos/tree/master/duracell> demo 
> uses a web worker AND is itself compiled with optimizations none. There are 
> two things done to accomplish this:
>
>    1. Duracell itself has no web worker code. Though it uses a library, 
>    durable-cells <https://github.com/aatree/durable-cells>, which 
>    includes a web worker.
>    2. In the duracell build.boot 
>    <https://github.com/aatree/aademos/blob/master/duracell/build.boot> file, 
>    the dev task uses pandeiro/boot-http 
>    <https://github.com/pandeiro/boot-http> rather than the simpler 
>    tailrecursion/boot-jetty <https://github.com/tailrecursion/boot-jetty>. 
>    The advantage to using boot-http is that it supports the loading of static 
>    files from library jar files. In this case, that means the main code in 
>    aaworker can create a web worker using durable-cell's dcells.js file.
>
> So how does the durable-cells library create the dcells.js file? Again, 
> there are two things done to accomplish this:
>
>    1. In the durable-cells build.boot 
>    <https://github.com/aatree/durable-cells/blob/master/build.boot> file, 
>    the dev task includes (cljs :optimizations :simple). This invokes the 
>    compiler with an appropriate level of optimizations.
>    2. But we still need to define the .js file. This is done in the 
>    dcells.cljs.edn 
>    
> <https://github.com/aatree/durable-cells/blob/master/src/worker/dcells.cljs.edn>
>  file. 
>    See Multiple Builds 
>    <https://github.com/adzerk-oss/boot-cljs/wiki/Usage#multiple-builds> for 
>    more information on cljs.edn files.
>
> From 
> https://github.com/aatree/aaworker/wiki/Compiling-with-Optimizations-None
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to