2013-07-16 87 views
1

我有這樣一些代碼如下:使用FREAD()異步

$socket = stream_socket_client('tcp://my.domain.com:2082', $errno, $errstr, 1, STREAM_CLIENT_ASYNC_CONNECT); 
fwrite($socket, "\xfe\x01"); 
$data = fread($socket, 1024); 

當一個HTML網頁加載,在使用fread行只需要在第二可以看出此代碼被執行:

1374008598.18 : Read begin 
1374008599.75 : Read end 

這招在頁面加載時間大大增加,有沒有什麼辦法來異步執行fread()命令。考慮到PHP是服務器端語言,我不確定在這種情況下是否有可能,如果不是的話,是否有另一種解決方案來防止由於fread()

回答

2

而導致的加載時間的大幅增加這是爲了儘早返回html,然後使用javascript爲另一個頁面執行AJAX請求,該頁面不會執行fread() ..您可以顯示進度條,直到操作完成。

順便說一句,對於插座有socket_read()

+0

使用一個AJAX請求,至於你說的非常完美的另一頁。謝謝! +1和✔ – Joshua

+0

很高興聽到:) – hek2mgl