Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Timeout caricamento

  1. #1

    Timeout caricamento

    Ciao a tutti !!!

    Ho un file esterno che si deve caricare durante il caricamento di una pagina e sto creando un codice che, durante il caricamento del file, dopo un tot di secondi se non è stato ancora caricato, chiuda la connessione e ti saluto....
    Ma non so dove mettere mano...

    Ho cercato un po' sul forum ma non ho trovato un granché applicabile al mio problema.

    Potete darmi una mano please?

    Grazie per l'aiuto...

    mitico1000

  2. #2
    ogni qunto viene aggiornato il file?
    come lo carichi?

  3. #3
    Originariamente inviato da bubu77
    ogni qunto viene aggiornato il file?
    come lo carichi?
    Il file viene ricaricato ogni volta che viene richiesto, non c'è un tempo di auto caricamento. La mia intenzione è di mettere un limite di tempo per il caricamento, per il quale se non viene caricato in tempo il file (diciamo in 10 secondi), la funzione si blocchi e la pagina continui normalmente.

    Il file viene caricato tramite un xml parser.

    Questa è la funzione principale richiamata con $c_xml = parser_xml($c_filename):

    Codice PHP:
    function parser_xml($file){          // Funzione XML
        
    global $x_variabile;
        
    $x_variabile='';
            
        
    // L'IDEA SAREBBE DI INSERIRE QUI...

        
    if (!(list($xml_parser$fp) = new_xml_parser($file))) {
           die(
    "Non si riesce ad aprire il documento XML");
        }

        
    // ...O QUI IL CODICE DI TIMEOUT

        
    $x_variabile .= "<pre>";
        while (
    $data fread($fp4096)) {
           if (!
    xml_parse($xml_parser$datafeof($fp))) {
               die(
    sprintf("Errore XML: %s alla linea %d\n",
                           
    xml_error_string(xml_get_error_code($xml_parser)),
                           
    xml_get_current_line_number($xml_parser)));
           }
        }
        
    $x_variabile .= "</pre>";
        return 
    $x_variabile;
        
    xml_parser_free($xml_parser);
        


  4. #4
    io ti ho chiesto ogni quanto si aggiorna il file perché se vengono fatte poche modifiche ti conviene elaborare il file una volta per tutte salvandolo in locale elaborato

    poi il timeout lo devi inserire nella funzione
    new_xml_parser

  5. #5
    Originariamente inviato da bubu77
    io ti ho chiesto ogni quanto si aggiorna il file perché se vengono fatte poche modifiche ti conviene elaborare il file una volta per tutte salvandolo in locale elaborato

    poi il timeout lo devi inserire nella funzione
    new_xml_parser
    Ah... il file di norma di aggiorna 2 volte al giorno ed è molto scomodo aggiornarlo manualmente, quindi escluderei l'opzione.

    Giusto per la cronaca, la funzione è questa:

    Codice PHP:
    function new_xml_parser($file)
    {
       global 
    $parser_file$xml_parser$x_variabile;

       
    $xml_parser xml_parser_create();
       
    xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDING1);
       
    xml_set_element_handler($xml_parser"startElement""endElement");
       
    xml_set_character_data_handler($xml_parser"characterData");
       
    xml_set_processing_instruction_handler($xml_parser"PIHandler");
    //   xml_set_default_handler($xml_parser, "defaultHandler");
       
    xml_set_external_entity_ref_handler($xml_parser"externalEntityRefHandler");
      
       if (!(
    $fp = @fopen($file"r"))) {
           return 
    false;
       }
       if (!
    is_array($parser_file)) {
           
    settype($parser_file"array");
       }
       
    $parser_file[$xml_parser] = $file;
       return array(
    $xml_parser$fp);

    Sono tutte un'insieme di funzioni, per questo non so nemmeno dove inserirlo

  6. #6
    Ho risolto...

    Praticamente ho inserito:
    Codice PHP:
        ini_set('default_socket_timeout','3'); // Timeout funzione 
    ed è tutto apposto.

    Se il file non si carica entro 3 secondi, ritorna automaticamente false.

    Grazie a bubu77 per l'aiuto.

    Saluti a tutti !!!!

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.