Patrick W. Fraley <pf <at> comsulting.de> writes:

> ...
> Now is this possible?  I would not like to include all code and js for 
> each modules view in the main page, since this would make it very huge 
> and very slow.
> 
> Thanks
> Patrick
> 


Another solution would be to load just the Javascript u need encapsulated in 
functions dinamically from the server i use a function to do that, basically 
what i have is this:

    This is the function wich loads the script at run time.
    function LoadScript(url)
    {
       var e = document.createElement("script");
       e.src = url;
       e.type="text/javascript";
       document.getElementsByTagName("head")[0].appendChild(e);
    }


And then u can load a script like this:
//ShowLogin.js

    ShowLogin = function()
    {
        var winLogin = new QxWindow("Login");
        winLogin.set({resizeable : false, modal : true, width: 250, height: 
120, showMaximize : false, showMinimize : false, allowMaximize : false, 
allowMinimize : false, showClose : false, centered : true });
        d.add(winLogin);
        
        // Nick
        var lbl1 = new QxAtom("Nick:");
        lbl1.set({ left: 10, top: 5});
        winLogin.add(lbl1);

        var tbNick = new QxTextField;
        tbNick.set({ left: 100, top: 5, width: 100, height: 14});
        winLogin.add(tbNick);
        // Ponemos el foco en el tb de nick
        tbNick.addEventListener("appear", function(e) {
          this.focus();
        });
        // End Nick

        // Pass
        var lbl2 = new QxAtom("Password:");
        lbl2.set({ left: 10, top: 35});
        winLogin.add(lbl2);

        var tbPass = new QxPasswordField;
        tbPass.set({ left: 100, top: 35, width: 100, height: 14});
        winLogin.add(tbPass);
        // End Pass

        // Login Button
        var btnLogin = new QxButton("Login", "icons/16/button-ok.png");
        btnLogin.setLocation(50, 70);
        btnLogin.set({height: 24, width : 75});
        winLogin.add(btnLogin);

        btnLogin.addEventListener("execute", function(e) {
            var name = tbNick.getValue();
            var passTmp = tbPass.getValue();
            var pass = hex_sha1(passTmp);
            var resu = LoginUser( name, pass);
            if(resu){
                userConected = resu.Usuario[0];
                winLogin.close();
                winLogin = null;
                UpdateMenu();
            }
        });
        // End Login Button
        
        // Cancel Button
        var btnCancelar = new QxButton("Cancelar", "icons/16/button-
cancel.png");
        btnCancelar.setLocation(130, 70);
        btnCancelar.set({height: 24, width : 75});
        winLogin.add(btnCancelar);

        btnCancelar.addEventListener("execute", function(e) {
            winLogin.close();
            winLogin = null;
        });
        // End Cancel Button


        winLogin.open();
    }
    
    LoginUser = function(nick, pass)
    {
        proxies.LoginService.func = null;
        var ret = proxies.LoginService.UserLogin(nick, pass);
        if(ret)
            return eval('(' + ret + ')');
        else
            return null;
    }
    
    loginIncluded = true;
    ShowLogin();

Note the call to ShowLogin(); at the end of the file i use this trick to get 
the function executed just after the script is loaded because with the dinamyc 
method of loading the browser doesn't wait until script is loaded so u cant put 
a call to the function after the call to load the script, i do that in thsi way:

...
    case "Login":
        if(!loginIncluded )
            LoadScript("scripts/Login.js");
        else
            ShowLogin();
    break;
...

In the first case when login is not included yet we simply call the LoadScript 
function and when the script has finnished loading the ShowLogin function is 
executed, in the second case we can simply call ShowLogin because the script is 
already loaded.

I hope this helps you.

VoidMain



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Qooxdoo-devel mailing list
Qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to