Anyone?
On Feb 22, 6:01 pm, Nazgulled <[EMAIL PROTECTED]> wrote: > I have this piece of code that took me a while to do it and I don't > know if it's the best way to achieve this. First, I'll explain exactly > what I want to do. > > I'm using lots of jQuery plugins and I don't want to include them all > with <script> in the <head> of every html page. And I want to load > these plugins for every page that needs them but I don't want to load > plugins that some specific page isn't going to need. > > To load these plugins I'm using the jQuery built-in $.getScript() > method and I want to use the callback to load the next script in > succession. This way, I'll load one script at a time, meaning, the > second script will only start to load when the first finishes and so > on. But, when the last plugin finishes loading, I want some other > function to be called, in this sample "initAdministratio()". Which is > basically the function that will start all the required code by my > application after all necessary scripts for that page are loaded. > > On this example, I have 3 plugins to load, and only 2 different pages. > One of the plugins is used by both pages, the other two depend on the > page to be load. One of the pages has a form with ID = form-login > which needs the form plugin, while the other page is the main page and > doesn't need the form plugin but needs the color plugin. Although I > only have 2 pages on this example, I will probably have more in the > future, a lots more. Some of them might need the same plugins as > others which will make them fall in the same if() statement, while > others don't and I will need to add an else if() statement. The last > else statement will always be the default page to load. Meaning, if no > specific page was found to load some specific plugins, then, just load > the default ones. > > Now, the code: > > $.extend($.browser, browserVersion); > > var loadJSLibs = function(libsList) { > var libName = libsList.shift(); > > var callback = function() { > if (libsList.length > 0) loadJSLibs(libsList); > else initAdministratio(); > } > > $.getScript(libsPath + libName + ".js", callback); > > } > > if($('div#form-login').length) { > var libsList = [ > 'jquery.simplemodal', > 'jquery.form' > ];} else { > > var libsList = [ > 'jquery.simplemodal', > 'jquery.colors' > ]; > > } > > loadJSLibs(libsList) > > Basically, I want to know if there's anyway to improve this piece of > code, somehow. As I've told you before, I took a while to do it as I > don't have much JS experience which will probably make me fail to see > things that experience JS programmers would not.