2010-07-18 47 views
1

我們有一個經典的JSP + Servlets應用程序,並希望在頁面中的數據需要一段時間加載時顯示「Content is loading」消息。如何在使用servlets的jsp頁面中顯示「數據加載」

有沒有一種簡單的方法來通過JS做到這一點?

場景:

  • 第1頁(a.jsp) - >選擇下拉菜單 - > 點擊搜索//數據被髮送回 服務器數據庫
  • URL更改(b.jsp) ,顯示白頁,然後數據加載30秒後

對於那些30秒我想顯示一個微調或一些消息。

添加ajax或jquery需要設計更改,我們現在無法做到。雖然應用程序已經使用其他的東西jQuery,但b.jsp正在從該頁面進行數據庫調用...

回答

1

在jsp中調用數據庫將非常不滿意。考慮到問題的前提下,你可以

//b.jsp 

<div id="msg">data is loading...</div> 

<% 
    out.flush(); 
    db.performanLengthJob(); 
%> 

<script> $("msg").remove(); </script> 

<p>Data is loaded!</p> 
1

AJAX是做到這一點的方式。你需要在服務器端有一些東西來幫助你跟蹤進度。

0

用ajax請求加載您的數據(在b.jsp中)。

製作一個JS函數,它在加載時啓動,讓它顯示你的消息('30秒左右'),然後讓它執行一個加載必要數據的Ajax請求。

我建議你使用一些js框架,比如jQuery,它會讓事情變得更簡單。

爲了在服務器端處理ajax請求,您需要創建一個servlet並將其映射到某個url,如your_app_name/ajaxsupport。這個servlet應該以某種方便的格式返回數據(它可以是純文本,xml或者JSON或其他)。在客戶端上,您將處理收到的數據並顯示它。

0

一個快速的解決方案可以使用onbeforeunload JS事件的基本頁面的HTML體S.G.的像

<body onbeforeunload="$("yourComponent").show();"> 
+0

只有在客戶端即將關閉窗口或離開時才調用'beforeunload',而不是在窗口加載完成時調用。 – BalusC 2010-07-19 11:51:41

相關問題