Привет,
у меня скрипт проходит циклом по ID на сайте и копирует нужную инфу) таких айдишников ооочень много и хотелось бы видеть статус выполнения скрипта. нашел простое решение через js
echo '<script language="javascript">
document.getElementById("information").innerHTML="'.$startcount.' ID processed.";
</script>';
echo str_repeat(' ',1024*64)
в принципе работает, но когда помещаю этот код в цикл, то он каждый раз выводится в html коде, а это для хотя бы 10 тыс. ID уже слишком. как можно решить эту проблему по-другому?
заранее спасибо!
Игорь_Vasinsky
28.11.2013 - 13:10
он у тебя должен менять значение $startcount в document.getElementById("information")
а ты что наблюдаешь? каждый раз дописывается?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
значение $startcount меняется, ничего не дописывается, это в принципе единственное, что мне нужно видеть.
но в исходнике код повторяется столько же раз, сколько и проходов цикла. если проходов больше 10 тыс. то скопировать с браузера что-то просто невозможно и страница может перезагрузиться сама..
Игорь_Vasinsky
28.11.2013 - 13:24
а если обернуть в php функцию?
инициализация всего 1 раз - и вызов тоже
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Bolik
1. Запускаешь скрипт, который долго выполняется. Он в свою очередь пишет в файл о своем состоянии (прогресс/ошибки и т.д.)
2. периодически аяксом/ифрейм ходишь до этого файла и смотришь содержимое
function getstatus ($startcount) {
echo '<script language="javascript">
document.getElementById("information").innerHTML="'.$startcount.' ID processed.";
</script>';
echo str_repeat(' ',1024*64);
}
так?
если вызывать функцию в цикле, то та же картина.
Цитата |
2. периодически аяксом/ифрейм ходишь до этого файла и смотришь содержимое |
в аяксе я 0

c файлом пробовал, но он в браузере каждый раз дописывает новое значение
Игорь_Vasinsky
28.11.2013 - 13:35
ты не функцию в цикле вызывай, а цикл внутри функции
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
ну так тогда цикл внутри этой функции и будет выводить много кода) . только что попробовал.
а как вызвать правильно js код в php без echo? если я правильно понимаю, это echo и выводит каждый раз код между тегами <script>
very_long_script.php
$i = 0;
while(true) {
file_put_contents('pid.txt', ++$i);
}
index.html (с использованием jQuery)
<div id="status"></div>
<script>
function checker() {
$.ajax({
url: "/pid.txt",
success: function(data) {
document.getElementById("status").innerHTML = data;
setTimeout("checker", 1000);
}
})
}
</script>
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.