[英]Difference between static variable in ActionScript and in Java EE
請核實我的理解。 在Java EE應用程序中定義靜態變量時,該變量是可見的,並且可以由任何其他用戶更改。 但是在actionscript的情況下,靜態變量的范圍是在瀏覽器窗口中運行的應用程序。
在這種情況下,是否可以在actionscript中定義一個變量,使其行為類似於Java EE中的靜態變量,因為actionscript是客戶端而Java EE是服務器端?
您對靜電的理解是正確的。
但這導致問題,您想要在幾個客戶端之間共享值。 但是,沒有簡單的解決方案。 您需要的是一個服務器,它存儲該值,客戶端必須向服務器詢問此值並要求服務器更新該值。
我想你需要所謂的'singleton'對象 - 一個對象可以被整個系統訪問。
即使來自Java的'靜態'也不會對你有太大的幫助:JavaEE中可能有多個靜態變量副本,例如當你使用集群時,集群中的每台機器都會運行自己的應用程序副本,因此將擁有自己的“靜態”變量副本。 如果你有(比方說)10個客戶端(在Flash或Flex中)和10個集群服務器,每個客戶端可能會得到自己的服務器,因此每個客戶端可能在服務器上獲得自己的靜態變量。
更重要的是,當服務器重新啟動但客戶端仍處於活動狀態時,所有靜態變量都將丟失。
制作真正的系統級單例的唯一方法是使用更復雜的解決方案,例如:
您始終可以通過Javascript將變量傳遞給瀏覽器,或者通過socket / urlloader / javascript傳遞給服務器。
雖然更確切地說,AS3中的靜態變量具有聲明它的范圍 - public,protected,internal,private - 並附加到特定的類定義。
您可以通過P2P網狀網絡與FP10.1中最近添加的實時媒體流協議共享值。 否則,您可以使用遠程共享對象在不同客戶端計算機之間共享值(但需要服務器端遠程處理解決方案,如FMS,WebOrb,FluorineFX,AMFPHP等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.