2014-04-09 18 views
0

有一個ping.php文件,它本身很好用:在jQuery對話框中顯示PHP輸出。

Ping給定主機,並在網頁上逐行顯示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在每次ping之後將其輸出到瀏覽器並將數據發送到您的計算機。瀏覽器在下載這些結果時保持與服務器的連接。

但是請注意,當使用ajax時,您使用的回調函數會在頁面加載完成時觸發,這與您的php腳本的工作方式不兼容。

你將不得不看一個更復雜的解決方案,比如每個ping調用PHP的javascript(所以它可以顯示進度),或者依賴於websockets來將更新推送到瀏覽器的東西。​​3210

+0

感謝佩斯,我會讀:

更多細節可在這樣的問題上找到。 – dbndhjefj