Initial commit
[blog.git] / posts / 142.html
1 title: Ejecución de programas Gacela en el navegador (rectificación)
2 date: 2011-02-28 18:28
3 ---
4 <div>
5 <p>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.</p>
6
7 <p>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.</p>
8
9 <p>El código para cargar un programa Lisp, compilarlo y ejecutarlo sería así:</p>
10
11 <pre>&lt;html&gt;
12     &lt;head&gt;
13         &lt;script type="text/javascript" src="lisp2js.js"&gt;&lt;/script&gt;
14         &lt;script id="head_js" type="text/javascript"&gt;&lt;/script&gt;
15         &lt;script type="text/javascript"&gt;
16             function cargar (fichero) {
17                 var req = new XMLHttpRequest();
18                 req.open('GET', fichero, false);
19                 req.send(null);
20                 if (req.status == 200) {
21                     var lisp_code = req.responseText;
22                     var js_code = string2js(lisp_code);
23                     document.getElementById('head_js').text = js_code;
24                 }
25             }
26         &lt;/script&gt;
27     &lt;/head&gt;
28
29     &lt;body onLoad="cargar('programa.lisp'); init();"&gt;
30     &lt;/body&gt;
31 &lt;/html&gt;</pre>
32
33 <p>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 <a href="https://developer.mozilla.org/en/using_xmlhttprequest">Using XMLHttpRequest</a>.</p>
34 </div>