Ajax JS

« Core js

Recuperar…

A grandes rasgos, la recuperación de un recurso es una operación bastante sencilla. Llega una solicitud y se devuelve una respuesta. Ejemplo con el método nativo de JavaScript fetch():


fetch("folder/data.json")
    .then(data => {
        //Do stuff
    }).catch(error => {
        //Handle fetch error
    })

El método Fetch, que define la API fetch() de JavaScript, proporciona una arquitectura unificada para diversos aspectos de la recuperación de datos, como las redirecciones y el protocolo CORS. Varias API lo utilizan, como img, el cursor CSS, el estilo de lista, etc.

No obstante, el ejemplo anterior es un ejemplo extremadamente sencillo y… ¡simplificado!

De hecho, también hay que gestionar diferentes posibilidades, como:

Y todo ello, gestionando al máximo los posibles errores…

Por lo tanto, ha sido necesario desarrollar varias funciones internas en el Core para gestionar todos estos casos, que se invocan constantemente (carga dinámica de páginas, guardado, eventos de actualización de cmd, eqLogic, etc., etc.).

Las funciones internas del Core también permiten gestionar todas las llamadas Ajax de forma global, por ejemplo, para gestionar el envío del evento pageLoad.

Además, estos métodos han permitido aislar ciertos scripts cargados dinámicamente, como las bibliotecas de core/3rdparty o de plugin/3rdparty, que ahora se cargan y se mantienen en el encabezado para mejorar el rendimiento.

Utilizar los métodos de Class.js del Core:


jeedom.config.load({
    configuration: document.getElementById('config').getJeeValues('.configKey:not(.noSet)')[0],
    error: function(error) {
        jeedomUtils.showAlert({
            message: error.message,
            level: 'danger'
        })
    },
    success: function(data) {
        //Do stuff
    }
})

Llamada a Ajax fuera de las clases js del núcleo:


domUtils.ajax({
    type: "POST",
    url: "plugin/xx/xx/stuff.php",
    data: {
        action: "doStuff",
        key: 'thisone'
    },
    dataType: 'json',
    global: false,
    error: function(error) {
        jeedomUtils.showAlert({
            message: error.message,
            level: 'danger'
        })
    },
    success: function(data) {
        //Do stuff
        jeedomUtils.showAlert({
            message: 'All good dude!',
            level: 'success'
        })
    }
})

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.