我有一个以前用来用标签写xml数据的php文件。现在我试图让它成为一个基于远程对象的东西。因此,我没有编写xml而是试图返回一个包含一些大型多维数组的类对象。问题是它导致高延迟。我不确定这是我的php文件导致延迟问题。
我的PHP代码:
class output{
public $grid;
public $week;
public $name;
var $_explicitType = "org.test.output";
}
class manager1{
function init($params,$arrayOut)
{
$action = $params[0];
switch ($action)
{
case "reload": return $this->Reload($arrayOut);break;
default:return $this->form($arrayOut);
}
}
private function Reload($arrayOut)
{
$this->getSlice();
$arrayOut->grid = $this->gridValue();
$arrayOut->week = 'no data';
return $arrayOut;
}
private function form($arrayOut)
{
$arrayOut->grid = $this->gridValue();
$arrayOut->week= $this->getAllWeek($this->ThisYear);
return $arrayOut;
}
}
AS-3代码调用php函数:
private function init():void{
var _amf:RemoteObject = new RemoteObject();
var params:Array = new Array(); //parameters array
params.push("default");
var arrayOut:output = new output();//strongly typed class
_amf.destination = "dummyDestination";
_amf.endpoint = "http://insight2.ultralysis.com/Amfhp/Amfphp/"; //amfphp home directory
_amf.source = "manager1"; //the php class which will be called
_amf.addEventListener(ResultEvent.Result, handleResult);
_amf.init(params,arrayOut);
}
private function handleResult(event:ResultEvent):void
{
datagrid.dataProvider = event.result.grid;
}
在我的应用程序中还有一个名为output的类:
package org.test{
public class output
{
public var grid:Array;
public var week:Array;
}
}
我正在使用它来使用amfphp将值传递给flex remoteobject。
实际上,弄清楚它很容易。您可以使用属于Flash Builder的网络监视器。它显示了请求时间和响应时间,因此如果问题出在PHP端或Flex端,您可以很好地了解它。您还可以查看响应的大小。
请注意,与多维数组混合的远程对象可能比您想象的要大,但网络监视器将再次帮助您弄清楚这一点。