2014-04-09 2 views
0

Существует файл ping.php, который отлично работает сам по себе:Показать выход PHP в диалоговом окне jQuery.

Пинг данного хоста и показывает результат ping сразу по строкам на веб-странице.

Но я хотел бы показать результат звона в окне JQuery Диалог

Аналогично, row_by_row.

Вот код JQuery:

$(function() { 
    var tag = $("<div></div>"); 
    $("#button").on('click', function() { 
     $.ajax({ 
     url: "/modules/ping.php?host=172.16.1.1", 
     success: function(data) { 
      tag.html(data).dialog({title: 'Ping', modal: false}).dialog('open'); 
     } 
     }); 
    }); 
    }); 

Но в этом случае отображается только диалоговое окно (и показать результат), когда ping.php Завершена бежать, и я не вижу пинг результат подряд за строкой! Это не хорошо.

Можно ли это исправить?

ответ

1

Я предполагаю, что ping.php ранее был включен в iframe или был посещен напрямую? Это работает, потому что PHP сбрасывает его вывод в браузер после каждого пинга и данных, отправленных на ваш компьютер. Браузеры поддерживают постоянное соединение с сервером при загрузке этих результатов.

Обратите внимание, что при использовании ajax вы используете обратный вызов success, который запускается при завершении загрузки страницы, это несовместимо с тем, как работает ваш скрипт php.

Вам нужно будет найти более сложное решение, такое как javascript, вызывающий PHP для каждого пинга (чтобы он мог показать прогресс), или что-то, что полагается на веб-порты, чтобы нажимать обновления в браузере.

Более подробную информацию можно найти в такие вопросы, как: What is the best way of showing progress on an Ajax call?

+0

Благодаря Pez, я буду читать. – dbndhjefj

Смежные вопросы