2014-03-03 216 views
0

當前學習玩! 2.0,我想給我的主頁添加一個「開放」:第一次用戶連接到主頁時,一個開放會顯示幾秒鐘,然後他會自動重定向到真正的主頁。本次會議剩餘時間將不再顯示此次開幕。延遲視圖渲染不起作用

現在這段代碼看起來像:

public class Application extends Controller { 

private static ScheduledExecutorService executor = executors.newSingleThreadScheduledExecutor(); 

public static Result home() { 
    boolean introSeen = Cache.get("introSeen") == null ? false : true; 
    if(introSeen) { 
     System.out.println("Cache good, sending you home !"); 
     return ok(home.render(Configs.HOME)); 
     //return redirect("/"); 
    } 
    else { 
     Cache.set("introSeen", true, 2*60*60); 
     Runnable task = new Runnable(){ 

      @Override 
      public void run() { 
       home(); 
       executor.shutdown(); 
      } 
     }; 
     executor.schedule(task, 7, TimeUnit.SECONDS); 
     return ok(intro.render(Configs.HOME)); 
    } 
} 

我已經添加的println以確保緩存變量登記和延遲的任務進行了工作,和他們做。但由於未知原因,代碼

return ok(home.render(Configs.HOME)); 

不起作用,並且介紹視圖(介紹)停留在屏幕上。

我試過用戶重定向,而不是「好」,但沒有到目前爲止。

感謝您的幫助:)

回答

1

你爲什麼不只是使用Meta refresh或一些JavaScript技術來做到這一點?

您可以使用會話cookie來檢查下次用戶是否應該看到開頭或目標頁面。