0

Web ページの読み込みに時間がかかりすぎます。その理由は、ページに約 3000 列の HTML テーブルがあり、すべての列にテキスト ボックスがあるためです。読み込み時間を短縮したり、他に代替手段があるかどうかを提案したりできる方法はありますか。

前もって感謝します

編集 - 正確なセネリオを教えてください。テーブルは日付に関するデータを表示する必要があり、日付 (2012 年 12 月 14 日など) は列ヘッダー自体になります。最新の日付が最初の列になり、システムの日付が変わるたびに (14-Dec-2012|13-Dec-2012|12-Dec-2012.....) のような過去の日付が表示されます。新しい列が最初の列として追加されます。約200行あります。そのJSPページとforループで最初にテーブルヘッダーを作成し、次にforループでテキストボックスの値を含むテーブルセルを作成しています(ユーザーがいつでも編集できるように)。

コードサンプル - ヘッダー -

<%
    Date today = new Date();
    String col = "";
    today = RDUtils.addDays(today, 1);
for(int i=0;i<=columnCount;i++){
    today = RDUtils.addDays(today, -1);
    col = RDUtils.getStringDateCol(today);
%>
<th class="TableHeader"><div><%=col%></div></th>
<%} %>

表のセル -

for(int j=0;j<=columnCount;j++){%>
    <input maxlength="5" onblur="fillZero(this);" onFocus='clearField(this);' onkeypress="if (checkEnter())return false;" onkeyup='if (checkEnter()) move("<%=i %>");' size="5" type="text" name="txtEntry<%=de.getId()%>" value="<%=val%>" id="<%=de.getId()%>"/></div> </td>

JS 関数 -

function checkEnter(e){
    characterCode = e.keyCode;
    return characterCode == 13;
}
function fillZero(obj){
if(obj.value==''){
    obj.value = 0;
}
 }
 function clearField(obj){
var perfix = obj.name.substring(8, obj.name.length);
var chkObj = document.getElementById('deCheck'+perfix);
if(!chkObj.checked)chkObj.checked=true;
if(obj.value==0){
    obj.value = '';
}
 }
4

1 に答える 1

0

Datatablesを使用してページネーションを使用することをお勧めします。

そして、AJAX メソッドを使用します。

$(document).ready(function() {
    $('#example').dataTable( {
        "bProcessing": true,
        "sAjaxSource": '../ajax/sources/arrays.txt'
    } );
} );
于 2012-12-24T06:47:42.810 に答える