2013-07-16 46 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