Visualizzazione dei risultati da 1 a 4 su 4

Discussione: stop function

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    158

    stop function

    Buongiorno a tutti,
    avrei la necessità di fermare una funzione javascript. Mi spiego meglio: faccio un filtro su una tabella mysql e spedisco i dati via post tramite la $.ajax() di jquery, caricando il contenuto in un div contenitore in modo da non dover ricaricare la pagina. Se però premo un altro tasto che deve caricare altri contenuti nello stesso div contenitore (tramite un'altra function) mentre è ancora in esecuzione la prima funzione vedo che nel div si scrive il nuovo contenuto che dura un attimo e subito dopo si carica il vecchio contenuto che essendo più corposo ci ha messo qualche secondo in più a completarsi.
    C'è un modo per fermare l'esecuzione di una funzione da una seconda funzione?
    Spero di essermi spiegato.
    Grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    No, devi riuscire a gestire il tutto mediante variabili globali da testare durante i cicli...

    var ferma=false;

    function mia() {
    // ...
    if (ferma) return;
    // ...
    }

    function altra() {
    ferma = true;
    // ...
    }
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che forse è meglio in questo caso fare chiamate sincrone 1 per volta a cascata finita una inizia l'altra (abortire chiamate oltre ad essere dispersivo/inutile potresti rischiare il blocco del server se ci sono molti utenti connessi) se non ti piace questa soluzione quando scateni la seconda funzione ad inizio prova ad inserire window.stop();
    tipo:
    function SecondaChiamataAjax(){
    window.stop();
    .........
    }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    158
    window.stop() funziona. Potenzialmente c'è il rischio di un sovraccarico di utenti e se c'è la possibilità di mandare in blocco il server preferisco lasciar completare tutte le funzioni prima di eseguirne un'altra.
    Grazie!

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.