2013-07-13 54 views
0

在用戶點擊按鈕後,我試圖ping一個像10次的對象,並且延遲了一小段時間。通過javascript使用PHP函數

我可以用for循環做,但問題是文檔會凍結,而它確實執行文檔中的所有內容,並且我想在每次ping完成時將其回顯出來。

我已經嘗試過多種方法,每次都遇到問題。我想最好的解決方案是使用ajax,然後在javascript中循環,或者只是執行代碼幾次。我還沒有弄清楚如何去做。

這是函數的樣子。

function ping($host, $port, $timeout) { 
    $tB = microtime(true); 
    $fP = fSockOpen($host, $port, $errno, $errstr, $timeout); 
    if (!$fP) { return "down"; } 
    $tA = microtime(true); 
    return round((($tA - $tB) * 1000), 0)." ms"; 
} 

我用它來調用PHP中的函數。

echo ping($website, 80, 10); 

所以,我basicly它添加到函數所在的文件。

現在,我一直在試圖弄清楚如何加載一段時間,但它並沒有變好。會喜歡這個的任何幫助。

如何在不凍結文檔的情況下加載和使用此功能?

+0

究竟什麼是你的問題? – simshaun

+0

實際問題:如何在不凍結文檔的情況下加載和使用此功能? – user2578535

+0

你想在JavaScript中發出一個異步請求。 jQuery.ajax默認是異步的,所以如果你使用它,你不應該遇到任何阻塞。 – simshaun

回答

0

結帳phpbuilder.com,它會讓你開始,他們在noobs上很溫柔。

你不想在Ajax上調用這個代碼10次,它不會對你試圖做的事有好處,因爲它會導致10個不同的請求。最好在循環中調用它10次。此外,你應該改變你的ping,在連接後發送某種形式的數據,然後計算響應時間。上面的代碼會定時連接,但就是這樣。

您可以發送一個假的請求,這將導致404錯誤,但這是一個最小的響應,而不是一個完整的頁面。時間從發送請求的時間到獲得響應的時間,這會給您一個更現實的ping估計。

給你的問題的一個更好的描述,如它如何不工作,就會有人能夠給你一個更好的答案

+0

這是一個瘋狂愚蠢的評論。我沒有要求提供教程網站,我要求提供一段代碼或某個地方有一個與此直接相關的教程。 – user2578535

+0

我會除了鈍的,但不會瘋狂愚蠢。你聽起來像你需要比代碼更多一點。這不是一對一走路的好地方,而是Q/A。 Noob的評論並沒有冒犯任何意見,我們在某個時候都被稱爲noobs。 – JSON

+0

雖然我不會稱自己是一個noob。我只是沒有太多使用JS。我沒有向PHP隊友尋求幫助。 如果你想幫忙,鏈接到一個幫助我的教程,不要鏈接一個根本沒有任何幫助的隨機網站。 – user2578535