Skip to content
This repository has been archived by the owner on Oct 10, 2023. It is now read-only.

Compatibilidad con ES5

Gabriel edited this page Mar 14, 2021 · 2 revisions

Nos propusimos mantener soporte para ES5 por, al menos, algunos años más. Y es por eso (y no por ninguna otra razón) que no verás sintaxis ES6 en Foxtrot.

Eso no quiere decir que no estemos de acuerdo con el uso de características de ES6; de hecho son avances maravillosos que hay que aprovechar. Se trata de mantener la retrocompatibilidad por el mayor tiempo posible.

A medida que el framework fue creciendo, inadvertidamente se utilizaron propiedades y funciones propias de ES6. Por ello, Foxtrot incluye funciones de relleno o polyfills (se cargan automáticamente en caso de ser necesarios, no se deben activar o incluir manualmente).

Nota: Los polyfills fueron agregados tras pruebas concretas en dispositivos Android (específicamente Android 4.4, el cual no ofrece posibilidad de actualizar su WebView); no se revisó todo el código de Foxtrot en busca de todas las características que los requieran. Si te encontrás con la necesidad de otros polyfills, avisanos en Issues.

Sin embargo, una de las principales características de Foxtrot hace uso de Proxy, para el cual no hay alternativa en ES5. Solo por ello, se agregó un mecanismo para hacerlo compatible de forma muy fácil para el desarrollador. En los controladores como en el controlador de aplicación, debe agregarse esta línea en la función listo:

this.listo=function() {
    this.servidor.preparar("metodoA","metodoB",...);
    ...
};

Los argumentos son los nombres de los métodos del controlador de servidor que se utilizarán durante la ejecución del controlador (solo de este archivo). En otras palabras, si el controlador hace uso de this.servidor.obtenerDatos() y this.servidor.actualizarItem(), debe invocarse this.servidor.preparar("obtenerDatos","actualizarItem").

Pero esto debe hacerse solo en caso de ser necesario, como en el caso de las aplicaciones Cordova que deban dar soporte a versiones de Android antiguas. Realmente debemos apostar al avance de la tecnología y apuntar a que la base tecnológica se mantenga actualizada.

Clone this wiki locally