我试图用streamedResponse输出进步到Symfony2的我的索引页面模板视图。如何使用StreamedResponse呈现在Symfony2的
下面这段代码确实表明我对API的调用进步,因为它的发生,但我有麻烦呈现在实际视图中的流信息。现在它只是在页面顶部输出纯文本,然后在视图全部完成时渲染视图。
我不想返回最终阵列,直到一切都加载关闭功能,但我似乎无法得到正规树枝模板,而我输出的进度显示。
我一直在使用渲染,但似乎没有真正输出中该视图文件到屏幕上,除非我回到尝试。
public function indexAction($countryCode)
{
//anywhere from five to fifteen api calls are going to take place
foreach ($Widgets as $Widget) {
$response = new StreamedResponse();
$curlerUrl = $Widget->getApiUrl()
. '?action=returnWidgets'
. '&data=' . urlencode(serialize(array(
'countryCode' => $countryCode
)));
$requestStartTime = microtime(true);
$curler = $this->get('curler')->curlAUrl($curlerUrl);
$curlResult = json_decode($curler['body'], true);
if(isset($curlResult['data'])){
//do some processing on the data
}
$response->setCallback(function() use ($Widget, $executionTime) {
flush();
sleep(1);
var_dump($Widget->getName());
var_dump($executionTime);
flush();
});
$response->send();
}
//rest of indexAction with a return statement
return array(
//all the vars my template will need
);
}
此外,另一个重要的细节是,我试图渲染所有的树枝,似乎有一些有趣的问题。
这15个请求是顺序吗? – Rhono
@罗诺,是的,他们是顺序的。现在,页面在完成之前不会呈现,因此我试图在每个调用完成时显示进度。 – absentx