Отображение изменяющегося значения php с помощью Javascript? - PullRequest
2 голосов
/ 26 ноября 2010

У меня есть скрипт на php, который постоянно увеличивает массив по мере обновления результатов.Он выполняется очень долго, потому что ему нужно отфильтровать несколько миллионов строк.

Зацикливая результаты, он печатает строки и заполняет страницу, пока полоса прокрутки не станет очень маленькой.Вместо того, чтобы распечатывать строки, я хочу просто динамически показывать количество успешных результатов, пока продолжается сценарий php.Я сделал эхо (count ($ массив));и нашел число в 1,232,907 ... 1,233,192 ... 1,234,874 и т. д., напечатанное во многих строках.

Итак, как мне отобразить эту возрастающую переменную php как одно растущее число на моей веб-странице с Javascript?

Ответы [ 5 ]

3 голосов
/ 26 ноября 2010

Вам нужно найти способ взаимодействия с процессом, чтобы получить из него текущее состояние. Ваш скрипт должен периодически экспортировать статус, например, записав его в базу данных.

Самый простой способ - периодически записывать статус в текстовый файл и периодически опрашивать этот текстовый файл с помощью AJAX.

3 голосов
/ 26 ноября 2010

Пусть ваш PHP-скрипт где-нибудь сохранит это число, а затем использует AJAX для его частого получения.

2 голосов
/ 26 ноября 2010

Вы можете использовать метод Forever Frame . По сути, у вас есть главная страница, содержащая iframe. Iframe загружается постепенно, периодически добавляя дополнительный тег script. Каждый тег сценария изменяет содержимое родительской страницы.

Существует полное руководство .

Тем не менее, есть много веских причин подумать о том, чтобы сделать больше предварительных вычислений (например, в работе cron), чтобы избежать выполнения реальной работы во время запроса.

0 голосов
/ 26 ноября 2010

Я бы предположил, что у вас есть скрипт PHP, который возвращает значение в формате JSON.Затем на другой php-странице вы можете сделать AJAX-вызов страницы, получить значение JSON и отобразить его.Ваш вызов AJAX может быть запрограммирован на выполнение, возможно, каждые 5 секунд или около того, в зависимости от того, насколько быстро выводятся ваши номера.Iframe, хотя и проще, немного устарел.

0 голосов
/ 26 ноября 2010

Это не то, что вы ищете (мне так же интересен ответ на этот вопрос ...), но решение, которое я нашел, работает, чтобы отслеживать подсчет на стороне сервера, и только печатайте каждые 1000/5000 / любое число, которое лучше работает, а не по одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...