Then it depends on what you want to build. I want a fat client
WebApplication. Maybe you don't want 200kb JavaScript on your frontpage.
But for the WebApplication I trade small loads on each click against a
longer loading time on initialisation.
Am 09.02.2012 23:45, schrieb Taka Kojima:
> I understand how browserify works, maybe I didn't clarify well enough.
>
> Yes, you don't have to inject moduleZ into moduleA, B and C if you put
> them all in the same file and load that js file upfront.
>
> This is not scalable though. If my entire site has 200kb of JS
> throughout the entire site, requiring users to download all 200kb upon
> page load is well, non-sensical.
>
> You should modularize your code so that you only require the JS for
> specific pages/functionality when you actually need it.
>
> This is accomplished via something like:
>
> require("someFile", function(someModule){
>
> });
>
> Browserify does not handle this use case at all. Yes, if you want to
> concat and minify all your js into a single file and load that file
> everywhere, sure, go right ahead, but you're doing it wrong.
>
> Taka
>
> On Thu, Feb 9, 2012 at 2:27 PM, Phoscur <[email protected]
> <mailto:[email protected]>> wrote:
>
> I think you haven't actually understood how
> browserify/browserbuild work:
> 1. load source files
> 2. wrap a function around them
> 3. concat all of them together and add a custom require()
> emulating node's require
> 4. instead of many script tags, insert one with the big file
>
> Now when moduleA requires moduleZ, the moduleZ function wrapper is
> executed exactly once when it's needed the first time (lazyload).
> Why should the call to function wrapper be asynchronous in this
> case??
>
>> Using browserify, you have to inject moduleZ into moduleA,
>> moduleB and moduleC. If moduleZ is 30kb of javascript, this is a
>> huge issue.
> inject what? What do filesizes matter here?
>
>
> Am 09.02.2012 23:11, schrieb Taka Kojima:
>> It's not really AJAX, it's just loading in the js files by
>> injecting <script> tags into the DOM.
>>
>> require() in it's synchronous form makes sense in the context of
>> node, it does not in the context of the browser.
>>
>> Say you have moduleA, moduleB and moduleC and they all require
>> moduleZ.
>>
>> Using browserify, you have to inject moduleZ into moduleA,
>> moduleB and moduleC. If moduleZ is 30kb of javascript, this is a
>> huge issue.
>>
>> This is just one of the reasons why taking the async approach
>> works better, it does what node does synchronously,
>> a synchronously. require() accepts a string, tries to map that
>> path to a file, includes that file, etc. in the process of doing
>> this, it caches that js file. Thus, calling require("foo") 100
>> times, does not have the overhead of require("foo") x 100.
>>
>> You can not get require("foo") working in the browser the same
>> way that node implements it. You can however, get an async
>> approach to this problem implemented in node. You need some way
>> for the browser to resolve "foo" to an actual file, load that
>> file, and upon loading that file, invoke a callback function.
>>
>> This is a problem that RequireJS, MinionJS and dojo all handle
>> and this is the right approach the problem.
>>
>> Browserify is a cool project, but it's usefulness ends as soon as
>> you step into real world applications.
>>
>> Taka
>>
>> On Thu, Feb 9, 2012 at 1:35 PM, Phoscur <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Then do not load code via ajax.
>>
>> Am 09.02.2012 22:18, schrieb Mark Hahn:
>> > > What exactly the problem with using node's synchronous
>> approach in
>> > the browser?
>> >
>> > Node loads the module quickly from the disk. Loading over
>> an ajax
>> > request is much slower.
>> >
>> > --
>> > Job Board: http://jobs.nodejs.org/
>> > Posting guidelines:
>> >
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> > You received this message because you are subscribed to the
>> Google
>> > Groups "nodejs" group.
>> > To post to this group, send email to
>> [email protected] <mailto:[email protected]>
>> > To unsubscribe from this group, send email to
>> > [email protected]
>> <mailto:nodejs%[email protected]>
>> > For more options, visit this group at
>> > http://groups.google.com/group/nodejs?hl=en?hl=en
>>
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines:
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the
>> Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]
>> <mailto:[email protected]>
>> To unsubscribe from this group, send email to
>> [email protected]
>> <mailto:nodejs%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>
>>
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines:
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]
>> <mailto:[email protected]>
>> To unsubscribe from this group, send email to
>> [email protected]
>> <mailto:[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> <mailto:[email protected]>
> To unsubscribe from this group, send email to
> [email protected]
> <mailto:nodejs%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en