title: Ejecución de programas Gacela en el navegador (rectificación) date: 2011-02-28 18:28 ---

Y es que a veces hay que meterse una patata en la boca antes de decir nada. O coger una patata en cada mano antes de bloguear nada.

En el post anterior sobre cargar ficheros con Javascript dije que con Ajax no se podía, que era necesario usar iframes, etc, etc... ¡¡Mentira cochina!! Pues claro que se puede, y resulta mucho más fácil.

El código para cargar un programa Lisp, compilarlo y ejecutarlo sería así:

<html>
    <head>
        <script type="text/javascript" src="lisp2js.js"></script>
        <script id="head_js" type="text/javascript"></script>
        <script type="text/javascript">
            function cargar (fichero) {
                var req = new XMLHttpRequest();
                req.open('GET', fichero, false);
                req.send(null);
                if (req.status == 200) {
                    var lisp_code = req.responseText;
                    var js_code = string2js(lisp_code);
                    document.getElementById('head_js').text = js_code;
                }
            }
        </script>
    </head>

    <body onLoad="cargar('programa.lisp'); init();">
    </body>
</html>

Esta sería la versión síncrona, aunque también se puede hacer de forma asíncrona. Se pueden ver más ejemplos en Using XMLHttpRequest.