2013-06-26 34 views
0

我是Salesforce的新手,對VisualForce頁面(VF)和Apex控制器有疑問。Salesforce使用Jquery將數據從Visualforce頁面發送到頂點控制器

如果我有一個包含在其中的控制器的VF頁面,那麼當頁面加載時,將在SFDC上創建一個新的控制器實例。它是否正確?

如果正確,那麼控制器將有一些狀態有一些變量保存一些數據。如果我想訪問一個音頻頁面,其中也包含標籤中包含的相同控制器,那麼該音頻頁面是否可以訪問相同控制器實例的相同信息,或者是否會創建該控制器的新實例?

我知道可以使用ajax調用控制器,從客戶端發送視圖狀態,並在響應到達瀏覽器時更新視圖狀態。但是,Salesforce(SFDC)在我使用時會發送大量垃圾。我不想要這些垃圾。我只需要從控制器發送一個小的JSON字符串。

我想使用JQuery AJAX調用一些VF頁面,它也包含相同的控制器。我的疑問是它是使用該控制器的相同實例還是將創建一個新實例?

回答

0

可以使用RemoteAction

global with sharing class myController{ 
    @RemoteAction 
    global static string foo(String str) { 
     return 'OK'; 
    } 
} 

在頁面

<script> 
myController.foo('str',callBack) 

function callBack(res){ 
    alert(res); 
} 
</script> 
+0

雅細。但我確實在控制器中有一些實例變量,它們根據用戶權限和共享規則保存數據。那個靜態方法可以用來處理那種類型的實例變量嗎?會尊重分享規則嗎? – speruri

+0

不,但你可以發送他們的功能。全局靜態字符串foo(String str,String str,String str)和頁面myController.foo('str','{!variable1}',...,callBack) –

+0

我的要求是獲得一個沒有任何JSON字符串視圖狀態垃圾,並且需要使用兩個使用相同控制器的音頻頁面來支持實例變量值。 – speruri

相關問題