作爲構建基於J2EE的Web應用程序的一部分,我一直使用Struts2作爲我的MVC框架。在MVC框架中呈現HTML表格
該應用程序的一部分是顯示報告(HTML表),主要是數千行和數十列的大小。我已經實施了分頁以使報告可讀等等。
報告系統今天的工作方式如下:整個數據以OOP方式準備並放置在ValueStack上。相應的JSP將讀取valueStack的數據並使用JSTL來繪製HTML代碼。
我正在修改代碼,我想重新審視這個邏輯以符合行業的最佳實踐。這裏的主要問題是,那裏有哪些最佳實踐?
渲染和繪製報告需要時間。尤其是在基於IE的瀏覽器上,在顯示數據之前頁面變得沒有響應(IE8支持是必須擔心的)。那麼最好的選擇是什麼?
是否使用javascript框架如jQuery並將繪圖部分移動到客戶端?我知道是否將整個HTML代碼以某種方式存儲在值棧中並以1鏡頭的形式顯示? 您認爲最佳方式是什麼?
一個最佳做法是在服務器上只計算您顯示的分頁標籤的數據。如果您顯示例如結果100到199在一個頁面上,排序你的數據並且只從服務器獲得100到199的項目,並且保存服務器的計算時間非常長。儘管您從服務器加載每個頁面,但處理較少數量的每個視圖的數據效率可能會更好。 – mico 2015-02-24 14:56:16
另一種思考方式:呈現所有內容並呈現它的解決方案可能是提供_whole_結果集的最快方法。問題很少可能需要整個結果集。如果您可以確定人們需要什麼並提供適當的過濾方法,那麼人們將會以更少的數據發送得到更快的速度。另一個考慮是,即使他們想要查看整個集合(在瀏覽器中)響應是關鍵,考慮50個記錄的可見區域,但是json獲取大小爲100.然後在範圍移向可用記錄。 – Quaternion 2015-02-25 00:25:09
有已經提供這種功能(無縫滾動)的JavaScript UI控件,它是現代「數據網格」的一個共同特徵。 – Quaternion 2015-02-25 00:27:20