Как я могу сделать веб-индикатор в Ajax и Perl? - PullRequest
2 голосов
/ 28 июня 2009

Мы используем вызов ajax для отправки данных на сервер. Программирование на стороне сервера выполняется с использованием Perl для сохранения данных в базе данных.

Поскольку у нас есть файлы огромного размера, мы хотим отобразить индикатор выполнения, который сообщает пользователю процентные данные, отправленные на сервер. Как этого добиться, используя Ajax и Perl?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 28 июня 2009

Для этого есть пара написанных сценариев:

3 голосов
/ 28 июня 2009

На высоком уровне я бы, вероятно, сделал бы это, поместив пустой элемент display: block с цветным фоном (или, возможно, изображение) на страницу с шириной нуля, а затем периодически запускал обратные вызовы AJAX на сервер, чтобы получить прогрессировать обновления и соответственно увеличивать ширину элемента. (Я подозреваю, что COMET был бы более эффективным способом справиться с подобными вещами, поскольку прочитанные мной описания предполагают, что это версия AJAX для серверной рассылки, так что это устранит накладные расходы при опросе, но я не очень заглянул в COMET, так что я могу неправильно это понять.)

На низком уровне фактический код для реализации этого в значительной степени зависит от того, как вы делаете свой AJAX. Используете ли вы JQuery , CGI :: Ajax , другой модуль (CPAN или другой) или свой собственный код обработки AJAX, созданный вручную?

2 голосов
/ 28 июня 2009

Использовать Comet: вставлять периодические теги Javascript, которые обновляют элемент индикатора выполнения на странице.Вам также нужно будет отправить дополнительные пробелы, чтобы браузеры обновили страницу (найдите эквивалент PHP flush () в Perl).

Например, каждые 10% загружаемых данных нажимайте

<script type="text/javascript">progressBar(10)</script>
<script type="text/javascript">progressBar(20)</script>
...
<script type="text/javascript">progressBar(100)</script>

, где progressBar(percentage) - это функция, которая обновляет ширину индикатора выполнения (я полагаю, у вас есть jQuery на странице):

function progressBar(percentage) {
    $('#progressbardiv').css('width', percentage + 'px');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...