Thanks Evan!
I actually already started along this big js blob path and was just 
beginning to see the problem with clashing page inits. Your solution with 
an init func per page will probably do just fine for me too so I'll try 
that now. With conditional caching on the big js file, it should only need 
to be loaded once per site release, so it should also be ok.



On Sunday, January 27, 2013 9:37:32 PM UTC+1, Evan Mezeske wrote:
>
> I solved this problem for my web app in a different way, which might be 
> worth considering.  My entire ClojureScript project compiles to a single JS 
> file which is used by every single page.  I organized things such that each 
> page had a cljs namespace associated with it, which has an "init" function. 
>  So for instance, "/foo/bar.html" would know to call (myapp.foo.bar/init) 
> on load, and "/baz/hello/world.html" would call 
> (myapp.baz.hello.world/init) on load.  This is just one way to organize 
> things, but it works pretty well for me.
>
> The advantage of this approach is that you only have to download the giant 
> ball of JS once, and then it's cached for as long as you like.
>
> The disadvantage of this approach is that the giant ball is, well, pretty 
> giant.  I think that it makes sense to use the single JS file for 
> reasonably complex apps, where your application code is small in comparison 
> to the ClojureScript standard library.  In that case, the whole JS file 
> will not be much bigger than just the standard library itself.  Of course, 
> if your app is very large (several tens of thousands of lines of code), and 
> you really need to get the initial JS size down, you will have to do 
> something more sophisticated.
>
> On Sunday, January 27, 2013 4:54:59 AM UTC-8, Marcus Holst wrote:
>>
>> Building a traditional multipage webapp and using only some cljs code on 
>> the pages requires me to put all the cljs overhead output in one single 
>> file that can be cached by the browser (in order to not have to load the 
>> same 130+ k cljs overhead for each page). I've tried creating an empty 
>> namespace containing only the overhead compilation, and then requiring it 
>> from one of my page specific cljs files. However this just spits out 
>> endless amounts of warnings. Have anyone done this before?
>>
>>

-- 
-- 
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


Reply via email to