rsync 명령의 진행중인 출력으로 DIV를 업데이트하려고합니다. 아이디어는 다운로드가 어떻게 진행되고 있는지를 알 수 있습니다. Jquery가 rsync 진행 상태로 DIV를 업데이트합니다.
이
내가있어 코드입니다,하지만 난 관련된 오류 받고 있어요 : 콘솔에서 'catch되지 않은 구문 에러를 불법 예기치 않은 토큰'<?php
$down = popen('rsyncd -Pav http://ipv4.download.thinkbroadband.com/1GB.zip 1GB.zip', 'r');
while($progress = fgets($down, 124)) {
ob_flush();flush();
?>
<script type="text/javascript">
$(document).ready(function() {
var update = "<?php echo $progress; ?>";
$("#status").html(update);
});
</script>
<?php
ob_flush();
ob_flush();flush();
}
pclose($down);
}
?>
<div id="status"></div>
나는 그것이 관련된 것을 볼 수 있습니다
var update = " 33390592 46% 4.62MB/s 0:00:08
34701312 48% 4.63MB/s 0:00:07
35979264 50% 4.63MB/s 0:00:07
";
업데이트의 각 줄을 가져 와서 오류없이 DIV에 표시하려면 어떻게해야합니까?
감사
내가 지금 사용하고
UPDATE. $ update에 대한 php echo는 웹 페이지에 라이브 출력을 표시하지만 DIV는 페이지가 완료 될 때까지 업데이트되지 않으며 출력의 마지막 줄만 가져옵니다.
왜 PHP echo가 작동 하나 div의 jquery 업데이트가 예상대로 작동합니까?
<?php
$down = popen('rsyncd -Pav http://ipv4.download.thinkbroadband.com/1GB.zip 1GB.zip', 'r');
$order = array("\r\n", "\n", "\r");
while($progress = fgets($down, 32)) {
ob_flush();flush();
$update = str_replace($order,'<br />', $progress);
echo $update; // <-- this outputs fine.
?>
<script type="text/javascript">
$(document).ready(function() {
var update = "<?php echo $update; ?>";
$("#status").html(update);
});
</script>
<?php
ob_flush();flush();
}
pclose($down);
}
?>
페이지가 완전히로드 될 때까지 jquery가 실행되지 않아서 div가 $ update의 마지막 항목으로 만 업데이트됩니까?
그렇다면 DIV가 업데이트되도록 페이지가로드 될 때 jquery를 실행할 수있는 방법이 있습니까?
감사합니다 :)
감사
UPDATE는
<script type="text/javascript">
$(document).ready(function() {
$.ajaxSetup({ cache: false });
$("#test").click(function() { $("#log").load("go.php"); });
});
</script>
그냥 작동 및 go.php를 호출하고 I 출력을 얻을 수 있지만, go.php이있는 경우에만, 위의 시도 rsync 다운로드를 마쳤습니다. 다운로드가 진행되는 동안 진행중인 출력을 표시하는 방법은 무엇입니까?
덕분에 두 번째 제안은 오류를 중지하지만, 예상대로 작동하지 않습니다. 원래 게시물을 업데이트하겠습니다. – JeffVader
n 초마다 상태를 업데이트하려면 jquery로 ajax 호출을 사용하십시오. – user3473274
고마워 -이 일을하려고하지만 다운로드가 완료되었을 때만 출력을 얻습니다. AJAX로이 작업을 수행하는 예는 무엇입니까? – JeffVader