2012-11-01 116 views
0

我有一個以前用於編寫XML數據標籤的PHP文件。現在我試圖讓它成爲一個基於remoteobject的小程序。所以,而不是寫入XML我試圖返回一個包含一些大的多維數組的類對象。問題在於它導致高延遲。我不確定是否我的php文件導致延遲問題。誰可以幫我這個事 ?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; 
     } 

而且還有一個名爲輸出在我的應用程序類:

package org.test{ 
       public class output 
        { 
        public var grid:Array; 
        public var week:Array; 
        } 
} 

我使用這個來傳遞值來使用amfphp來flex remoteobject。我需要緊急幫助的人。提前致謝。

+1

在我的經驗中,php從來沒有很好地處理大量的數據。爲了找到瓶頸。我建議在函數調用之前和之後放置microtime()變量,以便您可以找到該距離來自哪裏。我也不確定你給了我們足夠的信息給你一個很好的答案。你能告訴我們這些課程是如何使用的嗎? –

+0

感謝lan Overton的回覆。那麼我在Flex中使用它就像一個強類型的類。用戶代碼在這裏: –

+0

您是否嘗試禁用Amfphp中未使用的插件? –

回答

1

其實,這很容易搞清楚。 您可以使用屬於Flash Builder的網絡監視器。它顯示了請求時間和響應時間,所以如果問題出在PHP端或Flex端,你可以得到一個不錯的主意。你也可以看到回覆的大小。

請注意,與多維數組混合的遠程對象可能比您想象的要大,但網絡監視器將再次幫您找出答案。

+0

嗯,我設法計算請求和響應時間。它表明請求時間約爲10ms。響應時間約爲2-3秒。但是,請求結束時間後的響應開始時間爲6到7秒。 –