Ir ao conteúdo
  • Cadastre-se

Rodar php e javascript ao mesmo tempo


Posts recomendados

Boa noite pessoal, precisava rodar PHP e javascript "ao mesmo tempo", preciso atualizar um gráfico feito em javascript sem parar de rodar o PHP em momento algum, simplifiquei o problema no código abaixo, se conseguir fazer o código abaixo rodar, eu consigo atingir o objetivo. Caso alguém saiba como realizar esse objetivo de outra maneira por favor me de um help !

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">google.charts.load('current', {'packages':['corechart']}); </script>
  </head>
<?php 
@ini_set("output_buffering", "Off");
@ini_set('implicit_flush', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('max_execution_time',0);
header( 'Content-type: text/html; charset=utf-8' );
echo "Contador: ";
$i = 0;
while (true)  { // Enquanto esse looping não terminar nunca vou exibir o gráfico
  				// depois que i = 5, o gráfico é mostrado, e esse é o problema, rodo uma coisa depois outra, e não as 2 ao mesmo tempo
    for (; $i < 5; $i++) {
        echo $i." -- ";
        if(sleep(1) != 0){
            echo "sleep failed script terminating"; 
            break;
        }
        flush();
        ob_flush();
    }
    
    printf('
    <script type="text/javascript"> 
    i = '.$i.'    
    alert(i) // Engraçado que isso funciona ! quando i = 5 o alert é mostrado, mas o gráfico não é exibido !
    var dashboardState = "";
    options = ""
    function updateDraw() {
        chart = new google.visualization.PieChart(document.getElementById("piechart"));
        data = google.visualization.arrayToDataTable(dashboardState);
        chart.draw(data, options);
    }                        
    VariavelPHP = "LoL =D"
    options = {title: "Teste"};
    dashboardState = eval("[[\'asd\', \'qwe\'],[\'VariavelPHP\', i],[\'Task2\', 25],[\'Task3\',  10],]");
    google.charts.setOnLoadCallback(updateDraw);
    </script>
    ');
    $i = 0;
}
?>
<body>
    <div id="piechart" style="width: 900px; height: 500px;"></div>
</body>
</html>

Se o While (true) for retirado e o "looping for" chegar em $i = 5, o gráfico é mostrado, "MAS", se o While (true) for mantido, então o gráfico nunca será mostrado ! 

 

Agradeço a paciência !

 

Link para o comentário
Compartilhar em outros sites

Eu estou fazendo mineração de dados no Twitter, e precisava que o PHP roda-se e retorna-se os dados para o cliente que abri-se conexão com o PHP, ou seja, JS->PHP->Twitter e no retorno do Twitter temos Twitter->PHP->JS. Como estou pegando Tweets em tempo-real através de uma Stream aberta entre o PHP e Twitter, não posso garantir que pegar 10 Tweets de uma palavra chave vai demorar 3 segundo ou 5 minuto, se abrir e fechar conexão muitas vezes com o Twitter levo ban de 1 minuto, então precisava que o PHP roda-se sozinho apenas com um start do JS, ou seja, queria abrir uma unica conexão e deixar ela aberta com o PHP, e que o servidor me responde-se sempre que tivesse resposta, sem que o JS precisa-se ficar abrindo novas requisições e ao mesmo tempo que o JS fica-se livre para fazer outras tarefas dentro da página enquanto não obtive-se resposta do PHP. Por isso que queria rodar o PHP e JS ao mesmo, mas deu pra resolver de outro jeito, que não é exatamente o ideal, mas funciona ...

Citação

A técnica do Server Push consiste em manter uma conexão aberta entre cliente e servidor. Quando houver conteúdo para o servidor enviar ao cliente, ele o envia. Assim, o cliente não precisa ficar “perguntando” para o servidor se ele tem novo conteúdo. O problema dessa abordagem é que ela sobrecarrega o servidor com muitas requisições, aumentando tráfego de rede e podendo até derrubar o servidor.

segue o link do tutorial: http://rberaldo.com.br/server-push-long-polling-php-ios/

Untitlesdfsfsdfdsfd.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...