<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: JSLoader: On Demand JavaScript Libraries</title>
	<atom:link href="http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 09 Feb 2012 06:55:33 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
	<item>
		<title>By: Dov Katz</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-258215</link>
		<dc:creator>Dov Katz</dc:creator>
		<pubDate>Mon, 05 Nov 2007 03:51:58 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-258215</guid>
		<description>I know about the xdomain loading of dojo, and a member of my team was at the Ajax Experience in San Francisco (I went to Boston) where I believe xdomain was presented. 
-
The problem is, to date, I haven&#039;t seen a (1) CDN host non-dojo files like EXT, JQuery, Prototype, and everything else on top of it, and (2) a loader that works with these other libs out of the box.
-
What JSLoader tries to do is (1) eliminate the need for developers to know where to put the assets within their infrastructure, and (2) eliminate the need for developers to know how to include/use the libraries.  
-
A nice by-product is that there&#039;s a twiki where all of these new libraries can be played with, without having to run a webserver or manage files anywher.  I have not seen anyone else to date leveraging wiki for its amazing potential to be a playground for ajax developers.    I&#039;d love to see people hoist simple how-to examples up on a wiki somewhere (Not necessarily jsloader.com, but I tried to get a decent hosting plan so it could handle it if needed).  The twiki I set up allows HTML and JS for that very reason. 
-
Yes, I only do document.writes(), but I&#039;m solving a much more simple problem (I do not aim to solve the complex problems):  I want to use this for every library that currently exists, without making any major changes to the library, and essentially, I want the end result to generate the LINK(css) and SCRIPT tags developers would have needed to know to insert at the top of their documents, based on what they want.
-
In my production environment, in the firm where I deploy this, the end result are very empowered developers who have global access to a highly available filesystem hosting all AJAX libraries we bring in.  The learning curve is minimized, which is key to adoption in an enterprise setting.  Examples are deployed within twiki topics, and developers are encouraged to add their own examples.. and they do..
-
If I saw examples of dojo&#039;s loader loading YUI, and dojo&#039;s loader loading prototype, scriptaculous, jquery, etc, I&#039;d think it would have solved my problem and there would be no need for JSLoader.  
-
I hope that things within the realm of OpenAjax Alliance (I&#039;ve spoken to Jon F. at the Ajax Experience about this) will bring the common loading strategy that I think this widely diverse collection of libraries need.  In the meantime, my goal (and thus the purpose of jsloader in my workplace, and to a lesser extent, jsloader.com) is to make developers as productive as possible given the current landscape, and stop adding requirements the moment I stop adding value.
-
I think JSLoader fits in the  short-term, tactical space, as I mention earlier in this board, and gets people thinking about organizing their personal use of the wide assortment of libraries out there in way that allows them to reuse their download efforts across their development projects.  I&#039;ve deployed jsloader on a personal host, and symlinked (IIS reader read &quot;Virtual Directory&quot;) it to the webroot of all of my sites. A great way to isolate code I wrote, from OSS code, in my revisiion control system, etc...
-
Either way, I&#039;m not here to defend JSLoader. I don&#039;t think it&#039;s the best thing since sliced bread. I just aim to explain the problem it solved for me, and share it to the extent anyone else finds it useful. This discussion thread has been tremendously helpful in providing me with excellent feedback from industry experts and I appreciate everyone taking the time to participate.</description>
		<content:encoded><![CDATA[<p>I know about the xdomain loading of dojo, and a member of my team was at the Ajax Experience in San Francisco (I went to Boston) where I believe xdomain was presented.<br />
-<br />
The problem is, to date, I haven&#8217;t seen a (1) CDN host non-dojo files like EXT, JQuery, Prototype, and everything else on top of it, and (2) a loader that works with these other libs out of the box.<br />
-<br />
What JSLoader tries to do is (1) eliminate the need for developers to know where to put the assets within their infrastructure, and (2) eliminate the need for developers to know how to include/use the libraries.<br />
-<br />
A nice by-product is that there&#8217;s a twiki where all of these new libraries can be played with, without having to run a webserver or manage files anywher.  I have not seen anyone else to date leveraging wiki for its amazing potential to be a playground for ajax developers.    I&#8217;d love to see people hoist simple how-to examples up on a wiki somewhere (Not necessarily jsloader.com, but I tried to get a decent hosting plan so it could handle it if needed).  The twiki I set up allows HTML and JS for that very reason.<br />
-<br />
Yes, I only do document.writes(), but I&#8217;m solving a much more simple problem (I do not aim to solve the complex problems):  I want to use this for every library that currently exists, without making any major changes to the library, and essentially, I want the end result to generate the LINK(css) and SCRIPT tags developers would have needed to know to insert at the top of their documents, based on what they want.<br />
-<br />
In my production environment, in the firm where I deploy this, the end result are very empowered developers who have global access to a highly available filesystem hosting all AJAX libraries we bring in.  The learning curve is minimized, which is key to adoption in an enterprise setting.  Examples are deployed within twiki topics, and developers are encouraged to add their own examples.. and they do..<br />
-<br />
If I saw examples of dojo&#8217;s loader loading YUI, and dojo&#8217;s loader loading prototype, scriptaculous, jquery, etc, I&#8217;d think it would have solved my problem and there would be no need for JSLoader.<br />
-<br />
I hope that things within the realm of OpenAjax Alliance (I&#8217;ve spoken to Jon F. at the Ajax Experience about this) will bring the common loading strategy that I think this widely diverse collection of libraries need.  In the meantime, my goal (and thus the purpose of jsloader in my workplace, and to a lesser extent, jsloader.com) is to make developers as productive as possible given the current landscape, and stop adding requirements the moment I stop adding value.<br />
-<br />
I think JSLoader fits in the  short-term, tactical space, as I mention earlier in this board, and gets people thinking about organizing their personal use of the wide assortment of libraries out there in way that allows them to reuse their download efforts across their development projects.  I&#8217;ve deployed jsloader on a personal host, and symlinked (IIS reader read &#8220;Virtual Directory&#8221;) it to the webroot of all of my sites. A great way to isolate code I wrote, from OSS code, in my revisiion control system, etc&#8230;<br />
-<br />
Either way, I&#8217;m not here to defend JSLoader. I don&#8217;t think it&#8217;s the best thing since sliced bread. I just aim to explain the problem it solved for me, and share it to the extent anyone else finds it useful. This discussion thread has been tremendously helpful in providing me with excellent feedback from industry experts and I appreciate everyone taking the time to participate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: startoy83</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257838</link>
		<dc:creator>startoy83</dc:creator>
		<pubDate>Sat, 27 Oct 2007 02:44:34 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257838</guid>
		<description>ajaxflakes - Read all about the latest developments on web design 2.0 and ajax + lots of tips. TOP 100+ best Free Opensource Software for windows XP and Vista. Thought i should add it might be helpful to othersâ€¦ &lt;a href=&quot;http://ajaxflakes.com&quot; rel=&quot;nofollow&quot;&gt;http://ajaxflakes.com&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>ajaxflakes &#8211; Read all about the latest developments on web design 2.0 and ajax + lots of tips. TOP 100+ best Free Opensource Software for windows XP and Vista. Thought i should add it might be helpful to othersâ€¦ <a href="http://ajaxflakes.com" rel="nofollow">http://ajaxflakes.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wade Harrell</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257603</link>
		<dc:creator>Wade Harrell</dc:creator>
		<pubDate>Tue, 23 Oct 2007 14:32:24 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257603</guid>
		<description>it is great to see such an interest in this topic.  Dov you have done the good work!

Related to the topic I was emailed a link to http://en.wikipedia.org/wiki/AJILE which is yet another entry into the fray
and to recap the previous entries:
http://www.jsloader.com/
http://openjsan.org/doc/c/cw/cwest/JSAN/0.10/lib/JSAN.html
http://www.jspax.org/
http://csi.origo.ethz.ch/
http://amix.dk/blog/viewEntry/174
http://dojotoolkit.org/support/faq/how-does-dojo-require-work

So there are a few choices. What directory structure are you using?  Personally I use /jslib/com/.. following the reversed domain approach.  Is everyone using closures?

(function(){
	if(typeof(window.com)===&quot;undefined&quot;){window.com = {};}
	if(typeof(com.mydom)===&quot;undefined&quot;){com.mydom = {};}
	if(typeof(com.mydom.myClass)===&quot;undefined&quot;){
		com.mydom.myClass = function(){
			var myPrivVar;
			return {
				myMethod:function(){
					var foo = myPrivVar;
				}
			}
		}();
	}
})();</description>
		<content:encoded><![CDATA[<p>it is great to see such an interest in this topic.  Dov you have done the good work!</p>
<p>Related to the topic I was emailed a link to <a href="http://en.wikipedia.org/wiki/AJILE" rel="nofollow">http://en.wikipedia.org/wiki/AJILE</a> which is yet another entry into the fray<br />
and to recap the previous entries:<br />
<a href="http://www.jsloader.com/" rel="nofollow">http://www.jsloader.com/</a><br />
<a href="http://openjsan.org/doc/c/cw/cwest/JSAN/0.10/lib/JSAN.html" rel="nofollow">http://openjsan.org/doc/c/cw/cwest/JSAN/0.10/lib/JSAN.html</a><br />
<a href="http://www.jspax.org/" rel="nofollow">http://www.jspax.org/</a><br />
<a href="http://csi.origo.ethz.ch/" rel="nofollow">http://csi.origo.ethz.ch/</a><br />
<a href="http://amix.dk/blog/viewEntry/174" rel="nofollow">http://amix.dk/blog/viewEntry/174</a><br />
<a href="http://dojotoolkit.org/support/faq/how-does-dojo-require-work" rel="nofollow">http://dojotoolkit.org/support/faq/how-does-dojo-require-work</a></p>
<p>So there are a few choices. What directory structure are you using?  Personally I use /jslib/com/.. following the reversed domain approach.  Is everyone using closures?</p>
<p>(function(){<br />
	if(typeof(window.com)===&#8221;undefined&#8221;){window.com = {};}<br />
	if(typeof(com.mydom)===&#8221;undefined&#8221;){com.mydom = {};}<br />
	if(typeof(com.mydom.myClass)===&#8221;undefined&#8221;){<br />
		com.mydom.myClass = function(){<br />
			var myPrivVar;<br />
			return {<br />
				myMethod:function(){<br />
					var foo = myPrivVar;<br />
				}<br />
			}<br />
		}();<br />
	}<br />
})();</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wendel</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257588</link>
		<dc:creator>Wendel</dc:creator>
		<pubDate>Tue, 23 Oct 2007 12:16:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257588</guid>
		<description>I prefer Amir Salihefendic at http://amix.dk/blog/viewEntry/174 loading method, the remote script is called only when you call the function that need the script library.

Ex:
&lt;code&gt;
function needsScripts(arg1) {
  var div = AJS.DIV();
  alert(div);
}
needsScripts = onDemand(needsScripts, [&#039;AJS.js&#039;, &#039;greybox.js&#039;]);
needsScripts(&quot;Cow is mad&quot;);
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>I prefer Amir Salihefendic at <a href="http://amix.dk/blog/viewEntry/174" rel="nofollow">http://amix.dk/blog/viewEntry/174</a> loading method, the remote script is called only when you call the function that need the script library.</p>
<p>Ex:<br />
<code><br />
function needsScripts(arg1) {<br />
  var div = AJS.DIV();<br />
  alert(div);<br />
}<br />
needsScripts = onDemand(needsScripts, ['AJS.js', 'greybox.js']);<br />
needsScripts("Cow is mad");<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Burke</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257576</link>
		<dc:creator>James Burke</dc:creator>
		<pubDate>Tue, 23 Oct 2007 06:42:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257576</guid>
		<description>I work on the Dojo loader, both the synchronous, XHR-based one, and the asychronous, script-tag one (the xdomain loader). It is great to see more people trying to tackle this problem. Some points of clarification on Dojo, and some feedback on the general topic of JS loading:

The xdomain Dojo loader is a script tag loader. It requires a build process to prep the JS files for xdomain loading, but the benefit to doing so means that you can load the files after page load, and you get dependency resolution. 

From what I can tell, Dov Katz&#039;s JS Loader uses document.write only, so this will not work after page load. I also believe it will result in the same sort of &quot;freezing&quot; of the page that you can get with the regular XHR-based dojo loader if you try to load lots of modules as the page is loading.

The Dojo xdomain loader makes it possible to load all of the JS libraries from another domain, even a CDN, like the JS Loader tries to do. This means the xdomain loader delivers on the benefits in the &quot;&lt;a href=&quot;http://vps.jsloader.com/twiki/bin/view/JSLoader/WhyJSLoader&quot; rel=&quot;nofollow&quot;&gt;Why JS Loader&lt;/a&gt;&quot; wiki page: No local installation of JS library files needed: add a script tag and go. You can &lt;a href=&quot;http://build.dojotoolkit.org/0.9.0/&quot; rel=&quot;nofollow&quot;&gt;use all of Dojo from AOL&#039;s CDN&lt;/a&gt; using this approach. Not everyone will want to rely on a 3rd party site for their live site needs, but it sure makes prototyping and exploration easier. And you can always install an xdomain build on your own network, to at least get the async/more domain connection benefits.

I generally prefer requiring as little configuration to specify what needs to be loaded for a library. I think Dojo does good in this respect, requiring just a base URL to give the root of a library, then relying on a convention to load the rest (dojo.require(&quot;foo.bar&quot;) maps to http://base/url/foo/bar.js). Having good dependency resolution code also helps in this case. I know that is not a goal for the JS Loader, but I think it would help get away from needing the extra incr files.

For more info on some of these loader topics, I suggest checking out &lt;a href=&quot;http://www.tagneto.org/talks/AjaxExperienceXDomain/&quot; rel=&quot;nofollow&quot;&gt;my Ajax Experience presentation on the xdomain loader&lt;/a&gt;, and &lt;a href=&quot;http://dojotoolkit.org/2007/08/29/yojo-loading-yui-dojo-loader&quot; rel=&quot;nofollow&quot;&gt;my blog post talking about the YUI loader&lt;/a&gt;.

The latest jQuery 1.2 can load scripts via dynamic script tags (via jQuery.getScript). It does not have dependency resolution, but does the basic script loading, and it works after page load. It relies on script.onreadystatechange/onload to know when the script is loaded. I thought onreadystatechange was unreliable in a cached situation for IE 6. Although, I heard that a few years ago, maybe it is not true anymore. Still something I would like to investigate.

This is an interesting subject, I hope to see more discussion in this area.</description>
		<content:encoded><![CDATA[<p>I work on the Dojo loader, both the synchronous, XHR-based one, and the asychronous, script-tag one (the xdomain loader). It is great to see more people trying to tackle this problem. Some points of clarification on Dojo, and some feedback on the general topic of JS loading:</p>
<p>The xdomain Dojo loader is a script tag loader. It requires a build process to prep the JS files for xdomain loading, but the benefit to doing so means that you can load the files after page load, and you get dependency resolution. </p>
<p>From what I can tell, Dov Katz&#8217;s JS Loader uses document.write only, so this will not work after page load. I also believe it will result in the same sort of &#8220;freezing&#8221; of the page that you can get with the regular XHR-based dojo loader if you try to load lots of modules as the page is loading.</p>
<p>The Dojo xdomain loader makes it possible to load all of the JS libraries from another domain, even a CDN, like the JS Loader tries to do. This means the xdomain loader delivers on the benefits in the &#8220;<a href="http://vps.jsloader.com/twiki/bin/view/JSLoader/WhyJSLoader" rel="nofollow">Why JS Loader</a>&#8221; wiki page: No local installation of JS library files needed: add a script tag and go. You can <a href="http://build.dojotoolkit.org/0.9.0/" rel="nofollow">use all of Dojo from AOL&#8217;s CDN</a> using this approach. Not everyone will want to rely on a 3rd party site for their live site needs, but it sure makes prototyping and exploration easier. And you can always install an xdomain build on your own network, to at least get the async/more domain connection benefits.</p>
<p>I generally prefer requiring as little configuration to specify what needs to be loaded for a library. I think Dojo does good in this respect, requiring just a base URL to give the root of a library, then relying on a convention to load the rest (dojo.require(&#8220;foo.bar&#8221;) maps to <a href="http://base/url/foo/bar.js" rel="nofollow">http://base/url/foo/bar.js</a>). Having good dependency resolution code also helps in this case. I know that is not a goal for the JS Loader, but I think it would help get away from needing the extra incr files.</p>
<p>For more info on some of these loader topics, I suggest checking out <a href="http://www.tagneto.org/talks/AjaxExperienceXDomain/" rel="nofollow">my Ajax Experience presentation on the xdomain loader</a>, and <a href="http://dojotoolkit.org/2007/08/29/yojo-loading-yui-dojo-loader" rel="nofollow">my blog post talking about the YUI loader</a>.</p>
<p>The latest jQuery 1.2 can load scripts via dynamic script tags (via jQuery.getScript). It does not have dependency resolution, but does the basic script loading, and it works after page load. It relies on script.onreadystatechange/onload to know when the script is loaded. I thought onreadystatechange was unreliable in a cached situation for IE 6. Although, I heard that a few years ago, maybe it is not true anymore. Still something I would like to investigate.</p>
<p>This is an interesting subject, I hope to see more discussion in this area.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adnan Siddiqi</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257572</link>
		<dc:creator>Adnan Siddiqi</dc:creator>
		<pubDate>Tue, 23 Oct 2007 05:36:45 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257572</guid>
		<description>I actually liked the Import feature of Dojo Kit. Too good and organized.</description>
		<content:encoded><![CDATA[<p>I actually liked the Import feature of Dojo Kit. Too good and organized.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mikael bergkvist</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257566</link>
		<dc:creator>mikael bergkvist</dc:creator>
		<pubDate>Tue, 23 Oct 2007 01:18:40 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257566</guid>
		<description>Point taken. I wish that exact text of yours was in the post here from the start though.</description>
		<content:encoded><![CDATA[<p>Point taken. I wish that exact text of yours was in the post here from the start though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dov Katz</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257564</link>
		<dc:creator>Dov Katz</dc:creator>
		<pubDate>Tue, 23 Oct 2007 00:06:25 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257564</guid>
		<description>I&#039;m not saying it&#039;s ground breaking, or revolutionary. I am saying it tactically solves a problem in a way that gets it working with any third party library effortlessly, which is something I unfortunately did not find elsewhere when I put it together.   It does so in a way developers would *want* to use it, which is key for managing an enterprise infrastructure.  

It would be easy to modify it to hit a servlet with all the &quot;modules&quot; to load and have it merge the JS on the fly and send it back in a single packed, Expiry-controlled response (for caching).  At it&#039;s core, it&#039;s nothing more than writing script tags for you.

As I&#039;ve pointed out, if you&#039;re an enterprise (or Google, Yahoo, or some other large distributed content network)  single points of failure are not a concern. You&#039;ve engineered around them.  The same reason I see sites using YUI hosted from Yahoo without worrying about yahoo going down.

I would *not* recommend relying on jsloader.com for the same thing :), but if, for example Google or Yahoo promised to host things resiliantly, and they&#039;re able to pull it off, and they offered free lib hosting for libraries, developers would be able track use of their libraries, and maintain them much more easily than having people freeze them in time and use them locally.  (imagine a google code, hosted libraries, google groups, and google analytics power pack offerring with the ability for google to get a first-hand view of the emerging AJAX libraries)

If you took a clone of the &quot;repository&quot; filesystem and replicated it on every web server hardware in your enterprise, you might benefit from not having to worry about individual sites/webapps installing the libraries on their own, and benefit from an always up-to-date repository of libraries.  (Value for developers in ease-of-library use, and Value of infrastructure teams in knowing what&#039;s deployed in their environment).</description>
		<content:encoded><![CDATA[<p>I&#8217;m not saying it&#8217;s ground breaking, or revolutionary. I am saying it tactically solves a problem in a way that gets it working with any third party library effortlessly, which is something I unfortunately did not find elsewhere when I put it together.   It does so in a way developers would *want* to use it, which is key for managing an enterprise infrastructure.  </p>
<p>It would be easy to modify it to hit a servlet with all the &#8220;modules&#8221; to load and have it merge the JS on the fly and send it back in a single packed, Expiry-controlled response (for caching).  At it&#8217;s core, it&#8217;s nothing more than writing script tags for you.</p>
<p>As I&#8217;ve pointed out, if you&#8217;re an enterprise (or Google, Yahoo, or some other large distributed content network)  single points of failure are not a concern. You&#8217;ve engineered around them.  The same reason I see sites using YUI hosted from Yahoo without worrying about yahoo going down.</p>
<p>I would *not* recommend relying on jsloader.com for the same thing :), but if, for example Google or Yahoo promised to host things resiliantly, and they&#8217;re able to pull it off, and they offered free lib hosting for libraries, developers would be able track use of their libraries, and maintain them much more easily than having people freeze them in time and use them locally.  (imagine a google code, hosted libraries, google groups, and google analytics power pack offerring with the ability for google to get a first-hand view of the emerging AJAX libraries)</p>
<p>If you took a clone of the &#8220;repository&#8221; filesystem and replicated it on every web server hardware in your enterprise, you might benefit from not having to worry about individual sites/webapps installing the libraries on their own, and benefit from an always up-to-date repository of libraries.  (Value for developers in ease-of-library use, and Value of infrastructure teams in knowing what&#8217;s deployed in their environment).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mikael bergkvist</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257562</link>
		<dc:creator>mikael bergkvist</dc:creator>
		<pubDate>Mon, 22 Oct 2007 23:43:52 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257562</guid>
		<description>&quot;Weâ€™ve been able to load JS files on demand in Ajax Callbacks for more than 6 months now ;)&quot;

That stuff was done way back when webos.com was still alive and kicking, so it&#039;s not exactly groundbreaking..</description>
		<content:encoded><![CDATA[<p>&#8220;Weâ€™ve been able to load JS files on demand in Ajax Callbacks for more than 6 months now ;)&#8221;</p>
<p>That stuff was done way back when webos.com was still alive and kicking, so it&#8217;s not exactly groundbreaking..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257560</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 22 Oct 2007 23:12:54 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257560</guid>
		<description>This is great if you want to do heaps more requests than needed. 
On sites I work on, keeping the number of requests down is a significant challenge. Moreover, centralising the javascript store opens up your entire network of sites to significant downtime if the Javascript server goes down.</description>
		<content:encoded><![CDATA[<p>This is great if you want to do heaps more requests than needed.<br />
On sites I work on, keeping the number of requests down is a significant challenge. Moreover, centralising the javascript store opens up your entire network of sites to significant downtime if the Javascript server goes down.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans Schmucker</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257556</link>
		<dc:creator>Hans Schmucker</dc:creator>
		<pubDate>Mon, 22 Oct 2007 20:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257556</guid>
		<description>Some time ago I set up a similar system... it&#039;s built a little different but it gets the job done as well... basically, you add a ns.tw.csi.registerInclude(function(){});
call to all your libraries and that&#039;s pretty much it. It works perfectly with recursive dependencies and has very little overhead (code-wise). Of course, loading seperate files is considerably slower than one big server-assembled file but for me that&#039;s not crucial and I love the fact that I get the correct filenames and line numbers in the erorr console.

Sample:
http://tapper-ware.net/devel/js/csi/csi.htm

Project Page:
http://csi.origo.ethz.ch/</description>
		<content:encoded><![CDATA[<p>Some time ago I set up a similar system&#8230; it&#8217;s built a little different but it gets the job done as well&#8230; basically, you add a ns.tw.csi.registerInclude(function(){});<br />
call to all your libraries and that&#8217;s pretty much it. It works perfectly with recursive dependencies and has very little overhead (code-wise). Of course, loading seperate files is considerably slower than one big server-assembled file but for me that&#8217;s not crucial and I love the fact that I get the correct filenames and line numbers in the erorr console.</p>
<p>Sample:<br />
<a href="http://tapper-ware.net/devel/js/csi/csi.htm" rel="nofollow">http://tapper-ware.net/devel/js/csi/csi.htm</a></p>
<p>Project Page:<br />
<a href="http://csi.origo.ethz.ch/" rel="nofollow">http://csi.origo.ethz.ch/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dov Katz</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257555</link>
		<dc:creator>Dov Katz</dc:creator>
		<pubDate>Mon, 22 Oct 2007 20:08:58 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257555</guid>
		<description>A bit more about my approach.  We have a large scale replicated filesystem.  While I talk about it being hosted, I have the identical filesystem mapped to all webservers&#039; docroots here.

The hosted solution works sometimes (its on load balanced regional pairs of highly available servers) the local one is also an option.

This eliminates any single point of failure concerns, as well engineered infrastructures do, in general.

If the globally replicated filesystem is down in general, I&#039;d say you have more problems to worry about than your ajax libs!</description>
		<content:encoded><![CDATA[<p>A bit more about my approach.  We have a large scale replicated filesystem.  While I talk about it being hosted, I have the identical filesystem mapped to all webservers&#8217; docroots here.</p>
<p>The hosted solution works sometimes (its on load balanced regional pairs of highly available servers) the local one is also an option.</p>
<p>This eliminates any single point of failure concerns, as well engineered infrastructures do, in general.</p>
<p>If the globally replicated filesystem is down in general, I&#8217;d say you have more problems to worry about than your ajax libs!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frank Thuerigen</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257551</link>
		<dc:creator>Frank Thuerigen</dc:creator>
		<pubDate>Mon, 22 Oct 2007 18:45:05 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257551</guid>
		<description>BTW one more thing: while I generally like the idea of a centralized lib repository - if all sites in an enterprise environment get their code from there, you have a single point of failure that will bring the enterprise to a grinding halt if the repository site fails.
IMHO it is better to have a proxy function that gets required JS files from the central repository and stores them locally on the application server. And this would be a no-brainer - using twoBirds - as well.</description>
		<content:encoded><![CDATA[<p>BTW one more thing: while I generally like the idea of a centralized lib repository &#8211; if all sites in an enterprise environment get their code from there, you have a single point of failure that will bring the enterprise to a grinding halt if the repository site fails.<br />
IMHO it is better to have a proxy function that gets required JS files from the central repository and stores them locally on the application server. And this would be a no-brainer &#8211; using twoBirds &#8211; as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frank Thuerigen</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257547</link>
		<dc:creator>Frank Thuerigen</dc:creator>
		<pubDate>Mon, 22 Oct 2007 18:29:49 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257547</guid>
		<description>@Dov, Wade: I really suggest you have a look at twoBirds principles http://blog.phpbuero.de/?page_id=10 and implementation http://blog.phpbuero.de/?page_id=9 articles.
At least it unifies site structure and you can easily import foreign libs using the same structure. Also it allows for asynchronous on-demand loading and handles requirements loading by using standardized coding patterns.</description>
		<content:encoded><![CDATA[<p>@Dov, Wade: I really suggest you have a look at twoBirds principles <a href="http://blog.phpbuero.de/?page_id=10" rel="nofollow">http://blog.phpbuero.de/?page_id=10</a> and implementation <a href="http://blog.phpbuero.de/?page_id=9" rel="nofollow">http://blog.phpbuero.de/?page_id=9</a> articles.<br />
At least it unifies site structure and you can easily import foreign libs using the same structure. Also it allows for asynchronous on-demand loading and handles requirements loading by using standardized coding patterns.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wade Harrell</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257546</link>
		<dc:creator>Wade Harrell</dc:creator>
		<pubDate>Mon, 22 Oct 2007 17:53:39 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257546</guid>
		<description>@Thomas http://use.perl.org/~schwern/journal/24112 JSAN started in April 2005
-
Not about who did it first, but who does it best.  Dov seems to have a good approach realizing that not everything out there is going to play nicely yet.   So instead build something that works in as wide a range as possible.
-
Next step, propose conventions and start talking about namespaces.  Would be nice if JSLoader used dot notation so namespace migration would be easier in the future, but directory names with periods make that difficult.  Perhaps a JSLoader.import method that uses the ideal implementation?
-
Also thinking it would help adoption immensely to do as many &quot;ports&quot; of JSLoader as possible, jQuery, YUI, etc.  That way all the users of those libs can become familiar with the concept.  Increases maintenance but if the result is wider adoption then perhaps the cost is worth the result.</description>
		<content:encoded><![CDATA[<p>@Thomas <a href="http://use.perl.org/~schwern/journal/24112" rel="nofollow">http://use.perl.org/~schwern/journal/24112</a> JSAN started in April 2005<br />
-<br />
Not about who did it first, but who does it best.  Dov seems to have a good approach realizing that not everything out there is going to play nicely yet.   So instead build something that works in as wide a range as possible.<br />
-<br />
Next step, propose conventions and start talking about namespaces.  Would be nice if JSLoader used dot notation so namespace migration would be easier in the future, but directory names with periods make that difficult.  Perhaps a JSLoader.import method that uses the ideal implementation?<br />
-<br />
Also thinking it would help adoption immensely to do as many &#8220;ports&#8221; of JSLoader as possible, jQuery, YUI, etc.  That way all the users of those libs can become familiar with the concept.  Increases maintenance but if the result is wider adoption then perhaps the cost is worth the result.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Hansen</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257544</link>
		<dc:creator>Thomas Hansen</dc:creator>
		<pubDate>Mon, 22 Oct 2007 17:25:46 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257544</guid>
		<description>We&#039;ve been able to load JS files on demand in Ajax Callbacks for more than 6 months now ;)
Oh yeah, we&#039;re also taking care of the issue with types and methods from the JS file being referred to before file is finished loading...
One liner... ;)</description>
		<content:encoded><![CDATA[<p>We&#8217;ve been able to load JS files on demand in Ajax Callbacks for more than 6 months now ;)<br />
Oh yeah, we&#8217;re also taking care of the issue with types and methods from the JS file being referred to before file is finished loading&#8230;<br />
One liner&#8230; ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dov Katz</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257543</link>
		<dc:creator>Dov Katz</dc:creator>
		<pubDate>Mon, 22 Oct 2007 17:23:36 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257543</guid>
		<description>To the best of my knowledge, dojo&#039;s package loader requires calling dojo.loaded() for remote modules, and local ones are loaded via XHR.  It also makes assumptions about namespaces which would not make it easy to, say, load FCKEditor via the dojo loading system, though maybe I&#039;m wrong.  

Going back to &quot;what it&#039;s not&quot; from my previous response. It&#039;s not a dependency management system, nor is it a synchronous package loader or namespace management system. It&#039;s just a way to abstract knowledge of asset location to make it easier for developers to use libraries.  I&#039;m looking at something along the lines of the efforts in OpenAjax Alliance&#039;s space as a long term strategic solution to the problem this tool tactically solves.</description>
		<content:encoded><![CDATA[<p>To the best of my knowledge, dojo&#8217;s package loader requires calling dojo.loaded() for remote modules, and local ones are loaded via XHR.  It also makes assumptions about namespaces which would not make it easy to, say, load FCKEditor via the dojo loading system, though maybe I&#8217;m wrong.  </p>
<p>Going back to &#8220;what it&#8217;s not&#8221; from my previous response. It&#8217;s not a dependency management system, nor is it a synchronous package loader or namespace management system. It&#8217;s just a way to abstract knowledge of asset location to make it easier for developers to use libraries.  I&#8217;m looking at something along the lines of the efforts in OpenAjax Alliance&#8217;s space as a long term strategic solution to the problem this tool tactically solves.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter svensson</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257542</link>
		<dc:creator>peter svensson</dc:creator>
		<pubDate>Mon, 22 Oct 2007 17:15:09 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257542</guid>
		<description>Morriz: I was thinking the same thing when I saw this. Dojo has namespacing and auto/lazy loading of everything from square one.

Actually, I think that someone has used the dojo loader to load other things as well (maybe mentioned above).

Anyway, it _is_ a great idea. For instance my web  IDE would load twice as slow if I had to load all the stuff at once, instead of deferring, say, the code editor until the first time someone open a function.

Good idea, good competition. keep&#039;em coming :)

PS</description>
		<content:encoded><![CDATA[<p>Morriz: I was thinking the same thing when I saw this. Dojo has namespacing and auto/lazy loading of everything from square one.</p>
<p>Actually, I think that someone has used the dojo loader to load other things as well (maybe mentioned above).</p>
<p>Anyway, it _is_ a great idea. For instance my web  IDE would load twice as slow if I had to load all the stuff at once, instead of deferring, say, the code editor until the first time someone open a function.</p>
<p>Good idea, good competition. keep&#8217;em coming :)</p>
<p>PS</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: morriz</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257540</link>
		<dc:creator>morriz</dc:creator>
		<pubDate>Mon, 22 Oct 2007 16:57:30 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257540</guid>
		<description>it looks like there&#039;s no Dojo fans inhere...well, I am! And it hurts me to see so many ppl talk about this without knowing how Dojo does it.</description>
		<content:encoded><![CDATA[<p>it looks like there&#8217;s no Dojo fans inhere&#8230;well, I am! And it hurts me to see so many ppl talk about this without knowing how Dojo does it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dov Katz</title>
		<link>http://ajaxian.com/archives/jsloader-on-demand-javascript-libraries/comment-page-1#comment-257539</link>
		<dc:creator>Dov Katz</dc:creator>
		<pubDate>Mon, 22 Oct 2007 16:56:14 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=2923#comment-257539</guid>
		<description>@brian - In an proper enterprise setting, this is intended to run locally (see jsloader.js source, it doesn&#039;t even allow remote url&#039;s unless it was loaded from one).  As long as there&#039;s a responsible maintainer of the infrastructure, it&#039;s secure.  Sure, if it is used maliciously, and hosted maliciously, its only as secure as the person you entrust with the hosting.</description>
		<content:encoded><![CDATA[<p>@brian &#8211; In an proper enterprise setting, this is intended to run locally (see jsloader.js source, it doesn&#8217;t even allow remote url&#8217;s unless it was loaded from one).  As long as there&#8217;s a responsible maintainer of the infrastructure, it&#8217;s secure.  Sure, if it is used maliciously, and hosted maliciously, its only as secure as the person you entrust with the hosting.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

