1

我有一些如下代码:

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

4

1 回答 1

2

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

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

于 2013-07-16T21:13:04.643 回答