Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leonardo Zinelli Volpato

Executar sleep do javascript em php

Recommended Posts

Boa tarde, sou iniciantes em programação web e não consigo resolver um problema.

Meu problema é o seguinte, quero mostrar o conteudo de um arquivo do servidor pausadamente para o usuário, porém o sleep em php pausa o servidor e mostra tudo de uma vez. Tentei criar uma função javascript mas ela não funciona, também tentei criar um arquivo e chamar com exec e não funcionou.

<textarea class=bordaEntrada2 name="AreaDeEntrada2" rows="20" cols="40">
                <?php
                    $arquivo = ("C:/wamp/www/TexteTcc/log.txt");
                    $arrayArquivo = file($arquivo);
                    for($i = 0; $i < sizeof($arrayArquivo); $i++){
                        echo $arrayArquivo[$i];
                        echo "<script> funcao();</script>";
                    }
                ?>
</textarea>
<script language="javascript" type="text/javascript">
    function funcao(){
        sleep(1000);
    }
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso porque tu ainda não entendeu a função de cada uma destas linguagens, o php processa texto e só faz isso. Para mostrar cada coisa com o tempo tera que usar apenas o javascript...

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa tarde.

não sei se entendi bem o teu problema, mas quem sabe você usa a função setTimeout do javascript.

essa função faz uma pausa no script e depois redireciona para uma outra página informada, no caso eu coloquei "arquivo.php".

o tempo de pausa é definido em milisegundos, no meu caso eu faço uma pausa de 3 segundos (3000 milisegundos)

<script type="text/javascript">
window.setTimeout("location.href='arquivo.php';", 3000);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas dicas, refiz meu código em JS, porém ainda não consegui fazer o 'pause'. O que eu queria era que cada linha do arquivo fosse escrita na textarea a cada 1 segundo. Se alguem souber por favor...

<script language="JavaScript">
function passo(){
    var objFSO, objTextFile;
    var sReadLine, a="";
    
    objFSO = new ActiveXObject("Scripting.FileSystemObject");
    objTextFile = objFSO.OpenTextFile("C:/wamp/www/TexteTcc/log.txt",1);
    while((sReadLine = objTextFile.ReadLine())!=null){
        document.getElementById("aparece").value = a+sReadLine+"\n";
        var a = document.getElementById("aparece").value;
        //alert("OK");
        //window.setTimeout(1000);
    }
    objTextFile.Close();
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma não muito simpatica de se fazer:

<script>(function(){

  var a = ["Olá, ", "como "," vai ", "voce ?"],
      b = setInterval(function(){
         window.document.write(a.shift());
          if(a.length === 0){
            clearInterval(b);
          }
      }, 1000);})();</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

uma forma não muito simpatica de se fazer:

<script>(function(){

  var a = ["Olá, ", "como "," vai ", "voce ?"],
      b = setInterval(function(){
         window.document.write(a.shift());
          if(a.length === 0){
            clearInterval(b);
          }
      }, 1000);})();</script>

Perfeito cristianoolv, funcionou como eu precisava, muito obrigado.

 

Qual sua intenção ao mostrar o conteúdo pausadamente?

tipo aqueles sites que deixam o download limitado?

William, estou fazendo a depuração do código-fonte de um usuário e mostrando os passos executados a cada segundo, ou através de um clique. Animação de algoritmos é nome do que estou fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.