Visualizzazione dei risultati da 1 a 4 su 4

Discussione: AJAX Long Polling

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

    AJAX Long Polling

    Ciao a tutti! sto cercando di implementare il long polling per 'chiedere' nuovi contenuti solo quando disponibili risparmiando richieste HTTP, grazie a delle guide online e un po' di pratica sono riuscito a completare gli script


    parte Javascript (con JQuery)

    codice:
    $.ajax({
      url: 'http://pull.miosito.com',
      cache: false,
      type: 'GET',
      success: function(resp) {
        //post risultato se disponibile
        getNewStreamPost();
      },
    });
    parte PHP:
    codice:
    <? session_start(); $user=$_SESSION['user']; if ($user=="") {header("location:../index.php");} include "../connect.php";
    
    $time = time();
    while (time()-$time<30) {
      //posta i nuovi risultati se ci sono con un echo
      if ($new_post>0) {break;} //stoppa lo script se trova risultati
      sleep(5);
    }
    voi mi chiederete dov'è il problema ?
    bene, in pratica se richiamo lo script PHP con un url relativo, funziona, ma mentre lo script PHP sta effettuando il controllo mi blocca tutte le altre richieste HTTP anche se la chiamata AJAX è asincrona, invece se metto lo script PHP in un sottodominio con un url assoluto semplicemente non funziona dando un errore 302...qualcuno sa' come risolvere questo problema ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    22
    è davvero così complessa questa cosa ?

  3. #3
    Non è un problema di javascript. La chiamata è asincrona per il client, ma implementando long polling così in PHP blocchi il processo di apache che quindi non può servire altre richieste del/dei client.

    Leggi qua http://stackoverflow.com/questions/3...g-example-code ed eventualmente fatti spostare la discussione nel forum più appropriato.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    22
    su quel sito uno dice:
    Note: With a real site, running this on a regular web-server like Apache will quickly tie up all the "worker threads" and leave it unable to respond to other requests.. There are ways around this, but it is recommended to write a "long-poll server"
    quindi dovrei per forza fare usare una cosa come lighttpd o tornado web server ? mi toccherà studiare, vabbe grazie lo stesso

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 © 2026 vBulletin Solutions, Inc. All rights reserved.