Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Load immagini

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    11

    Load immagini

    Domanda forse stupida da parte di un principiante
    All'interno di una mia pagina html faccio una richiesta a un dispositivo remoto che mi restitusice tra le varie cose il nome del file di una immagine (memorizzato nel ddispositivo remoto)

    La mia sequenza è
    ajax...post....complete...mia funzione

    Nella mia funzione carico l'immagine con
    var sensor_img = new Image (32, 32) ;
    sensor_img.src = filename ; // rcevuto dalla post

    la pagina si ricarica ogni 30secondi Per non caricare ogni volta la stessa immagine come posso fare?
    Se non ho capito male var sensor_img ha il suo scopo solo all'interno della funzione in cui è definito quindi viene distrutto uscendo dalla funzione giusto ?
    Se definisco sensor_img senza var è globale ? Puòandare bene ? In questo caso devo occuparmi io di demolirlo quando abbandono la pagina ?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da accacca Visualizza il messaggio
    Domanda forse stupida da parte di un principiante
    All'interno di una mia pagina html faccio una richiesta a un dispositivo remoto che mi restitusice tra le varie cose il nome del file di una immagine (memorizzato nel ddispositivo remoto)

    La mia sequenza è
    ajax...post....complete...mia funzione

    Nella mia funzione carico l'immagine con
    var sensor_img = new Image (32, 32) ;
    sensor_img.src = filename ; // rcevuto dalla post

    la pagina si ricarica ogni 30secondi Per non caricare ogni volta la stessa immagine come posso fare?
    Ma... non credo che le chiamate Ajax generino cache, penso che dovrai caricarla tutte le volte, ma se non cambia mai potresti spostarla fuori dalla chiamata
    Se non ho capito male var sensor_img ha il suo scopo solo all'interno della funzione in cui è definito quindi viene distrutto uscendo dalla funzione giusto ?
    Non viene distrutta è limita alla sola funzione
    Se definisco sensor_img senza var è globale ?
    No è una stupidaggine, per renderla (var serve per dichiarare una variabile) globale devi dichiararla fuori da qualsiasi funzione
    Puòandare bene ?
    Non penso che cambi nulla
    In questo caso devo occuparmi io di demolirlo quando abbandono la pagina ?
    no tutte le variabili alla chiusura della pagina si distruggono
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Domanda alquanto criptica...

    Per non caricare ogni volta la stessa immagine come posso fare?


    ti fai passare dal dispositivo remoto un nome di un immagine diversa?

    la pagina si ricarica ogni 30secondi
    l'intero documento? Se usi ajax perche ricarichi la pagina? o fai l'una o fai l'altra

    Se definisco sensor_img senza var è globale ?


    si

    Puòandare bene ?


    per cosa? cosa centra il fatto di cambiare scope della variabile con cambiare l'immagine?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    11
    grazie le mie idee non sono molto chiare purtroppo..
    ok giusto! ogni 30sec faccio a chiamata ajax per ottenere lo stato dei dispositivi remoti
    Io sbagliando pensavo a una configurazione automatica per l'autoreload che mi pare si metta nell'header della pagina html. Comunque è una scemenza non serve approffondire.

    Discorso immagine: l'aggeggio remoto ne ha una ventina (icone 32x32) che rappresentano il suo stato spento,acceso, allarme, in funzione ecc... L'idea era di rendere ogni dispositivo autonomo quindi niente immagini che non sono locali al dispositivo (il sistema potrebbe essere scollegato da internet).
    Mi posso collegare con un dispositivo qualsiasi (tablet pc telefono) e devo potre visualizzare la pagina di stato. La richeista ajax mi restituisce quale immagine rappresenta lo stato attuale e io chiedo l'immagine al remoto. Ad ogni cambiamento di stato chiedo la nuova immagine.
    Quello che vorrei fare è aggiornare i dati visualizzati nella pagina dopo ogni richesta ajax senza scaricare ogni volta l'immagine se non è necessario. per questo pensavo a una variabile globale la prima volta la inizializzo caricando l'immagine e poi la modifico solo se necessario.

    Mooolto confuso ... nessuno è disposto a scambiare pagine web con hardware/firmware ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    è un pochettino piu chiaro ma

    Ad ogni cambiamento di stato chiedo la nuova immagine.
    Se lo stato è lo stesso non richiedere la nuova immagine, no? non richiami la funzione che crea l'immagine

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    11
    Certo Vindav per te probabilmente è ovvio ma purtroppo per me no
    Io pensavo di mettere "da qualche parte" l'ultima lettura ajax Alla successiva confronto e agisco di conseguenza
    devo tradure "da qualche parte" in javascript.
    Ajax mi restituisce un oggetto json che contiene N cose tra cui l'id della famosa imamgine
    Io pensavo di salvare l'oggetto json ricevuto in modo che sia disponibile per il confronto alla prossima lettura
    come faccio ?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    per prima cosa ti chiedo di postare il codice della chiamata ajax, altrimenti è impossibile aiutarti, intanto ti faccio un esempio banalissimo (magari nel tuo contenso non è applicabile per questo ti chiedo il codice)

    var stato = ""; //varibile globale di appoggio(è l'idea che avevi anche tu se non ho capito male) contiene lo stato della richiesta precedente

    //richiesta ajax
    if(myjson.stato != stato){ // se lo stato del json che è tornato dalla richiesta ajax è diverso da quello presente nella variabile d'appoggio creo nuova immagine(la prima volta sarà sempre diverso)
    funzioneCreaImmagine();
    }

    stato = myjson.stato; //aggiorno variabile d'appoggio con lo stato dell'ultima chiamata

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    11
    Eccolo
    codice:
      
      $(document).ready(function() {
    
          $.ajax({
            url        : "http://192.168.1.128/devstat.json",
            type       : 'post',
            dataType   : 'json',
            contentType: 'application/json',
            data       : "",
            complete   : DEVread_status,
            error      : function(error) { console.log( "ERROR:", error ); alert('Impossibile leggere dal dispositivo...');}
          });
    
        }) ;
    quindi se metto stato = {} ; fuori da ogni funzione ho definito la mia variabile globale

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    posta anche il codice della funzione DEVread_status, penso sia li la parte interessata

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    11
    Lo supponevo... scusami
    Ho allegato lo script completo (è work in progress ma molto in progress...)
    Non giudicare lo stile ma se va bene per il mio scopo
    a far le cose bene ci penserò dopo...
    File allegati File allegati

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.