2012-12-31 23 views
0

我一直在尋找一種解決方案,當我在頁面上執行AJAX調用時,我可以使用該解決方案來延長liferay會話。我發現我們可以使用Liferay.session.extend()來延長liferay會話。我發現在extend session of Liferay when performing AJAX call無法以編程方式延長liferay會話

但我不能調用擴展方法,在控制檯我得到的錯誤Liferay.session沒有定義。

會出現什麼問題?

+0

希望你在這個腳本標籤中寫了'Liferay.session.extend()'調用標籤' ...'。 –

+0

我把它叫做一個我寫在JS文件中的函數 –

回答

1

如果您正在JSP中調用比你可以作出這樣的標籤<aui:script>內來電:

<aui:script use="liferay-session"> 
    Liferay.session.extend(); 
</aui:script> 

或者

<aui:script use="liferay-session"> 
    function myCustomSessionExtend() { 
     Liferay.session.extend(); 
    } 
</aui:script> 

或者,如果您使用的是單獨的JavaScript文件*.js)然後我認爲以下應該工作:

AUI().use('liferay-session', function(A) { 
    Liferay.session.extend(); 
}); 

或者

function myCustomSessionExtend() { 

    AUI().use('liferay-session', function(A) { 
     Liferay.session.extend(); 
    }); 

} 

從Liferay的6.0起Liferay的使用合金UI,因爲默認的JavaScript庫。 合金UI具有沙箱一個概念(在AUI().use (function(A) { ... });創建一個沙箱即,對於對象的一隔離區)和模塊化(僅在需要時加載模塊,因此liferay-session是使用合金UI創建的一個這樣的模塊)。

欲瞭解更多信息,您可以查看this blogthis document

希望這將有助於解決您的問題。

+0

我試過你的解決方案,單獨的JavaScript文件(* .js),但不幸的是它沒有工作。可能是什麼原因?我遇到了同樣的錯誤 - Liferay.Session沒有聲明 –