Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    scrittura su database asincrona dopo cambio pagina/chiusura browser

    salve a tutti.

    ho questo piccolo problema che non riesco a risolvere (o meglio, mi servirebbero delle soluzioni su come poterlo risolvere).

    praticamente io devo effettuare una scrittura su database nel momento che esco da una determinata pagina (sia che la cambi, sia che chiuda il browser).

    avevo provato tempo fà a utilizzare ajax-jquery sfruttando l'evento checkUnload() che chiama una funzione ajax che a sua volta scrive sul database.

    problema sostanziale è questo : se faccio la chiamata ajax di default asincrona, funziona "ogni tanto" (nel senso, ogni tanto scrive, ogni tanto no; credo sia dovuto al fatto che non ritornando un valore la funzione s'impalla);

    codice:
    <script>
    	function checkUnload() {
    	if(checkload) {
    	unloadf('<?=$ajaxtrackid?>');
    	}
    }
    window.onbeforeunload = checkUnload;
    </script>
    codice:
    function unloadf(ajaxtrackid){
    	$.ajax({
    		type: "POST",
    		url: "./asynch/unloadf.php",
    		data: "trackid="+ajaxtrackid
    	});
    }
    Codice PHP:
    <?
        
    include("../database/config.inc.php");
        
    // file unloadf.php
        
    $update mysql_query("UPDATE tracklist SET block = '0', blockuser = '0', blockdate = '0000-00-00 00:00:00' WHERE trackid = '".$_POST['trackid']."'",$mydb);    
        
    mysql_close($mydb);
    ?>
    se faccio la chiamata ajax sincrona, (aggiungendo la riga async:false, nella funzione ajax) funziona sempre, però lato client aspetta un valore di ritorno (immaginate quindi se faccio la chiamata e improvvisamente cade la linea; ipotesi remota, ma teoricamente il browser di bloccherebbe).

    mi piacerebbe quindi risolvere il tutto in maniera asincorano, ma appunto, RISOLVERLO, non affidandomi al caso

    qualche idea in merito? cordiali saluti e grazie per il supporto!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    L'unica soluzione che conosco e fare una chiamata sincrona attendere la risposta positiva del server e chiudere il browser.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    si così funziona, ma non è un pò rischioso? nel senso se la connessione cade (tra client e server, per esempio salta la linea mentre c'è la connessione) si blocca il browser? effettivamente sarebbe difficile il verificarsi di una situazione del genere, ma non impossibile

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Questo è un rischio (remoto) di internet a prescindere dal metodo d'invio dati che utilizzi, d'altronde come ho già detto non hai molte altre soluzioni, forse installando un programma sui singoli pc.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    sisi ok, alla peggio mi butto su questa soluzione era giusto per sapere se c'erano altre alternative... grazie per le risposte!

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.