异步使用fread()

时间:2013-07-16 21:09:36

标签: php html asynchronous page-load-time

我有一些代码如下:

$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()

导致加载时间大幅增加

1 个答案:

答案 0 :(得分:2)

改善这一点的唯一方法是尽早返回html,然后使用javascript对执行fread()的另一个页面执行AJAX请求。您可以显示进度条直到操作完成。

顺便说一句,对于套接字,有socket_read()