这是我jsp的代码 <table  id="yhTable" width="100%" cellspacing="0">
                <tr>  <th class="th_bgcolor" width="3%">   标记  </th>
  <th class="th_bgcolor" width="6%">    货号
  </th>  <th class="th_bgcolor" width="12%"> 
   货物名称 </th> <th class="th_bgcolor" width="5%">
                  规格    </th>     <th class="th_bgcolor" width="4%">       单位      </th>
   <th class="th_bgcolor" width="5%">    零售价   </th>
    <th class="th_bgcolor" width="13%">  生产厂家 </th>   <th class="th_bgcolor" width="6%"> 
   供应商  </th>  <th class="th_bgcolor" width="12%">    供应商名称
                  </th>
                  <th class="th_bgcolor" width="7%"> 
                  存量
                  </th>
                  <th class="th_bgcolor" width="7%"> 
                  数量
                  </th>
                  <th class="th_bgcolor" width="7%">
                  参考价
                   </th>
                  <th class="th_bgcolor" width="5%"> 
                  分店库存
                  </th>
                  <th class="th_bgcolor" width="10%"> 
                  备注
                  </th>
            
                </tr>
                <c:if test="${requestScope['wshyh'] !='Y'}">
                <tr id="insert" >
                <td style="text-align:center">
                    <input type="checkbox"  name="bj2" style="text-align:center" onclick="bj1()" onkeydown="if(event.keyCode==13)event.keyCode='9'" onchange="xinjianyong()">
                    <input type="hidden" name="bj" value="0">
                </td>
                <td> <input type="text" id="hh" name="hh" style="width:100%;height:100%" value="" onkeydown="common()" onchange="xinjianyong()">
                 </td>
                  <td> <input type="text" id="hwmc" name="hwmc" style="width:100%;height:100%" value="" readonly="readonly" class="readonlycolor"/></td>
                   <td> <input type="text" id="gg" name="gg" style="width:100%;height:100%" value="" readonly="readonly" class="readonlycolor"/></td>
                    <td> <input type="text" id="dw" name="dw" style="width:100%;height:100%" value="" readonly="readonly" class="readonlycolor"/></td>
                     <td> <input type="text" id="lsj" name="lsj" style="width:100%;height:100%;background-color:#E6F1F7" value="" class="td_number1" readonly="readonly"/></td>
                      <td> <input type="text" id="sccj" name="sccj" style="width:100%;height:100%" value="" readonly="readonly" class="readonlycolor"></td>
                       <td> <input type="text" id="gysbh" name="gysbh" style="width:100%;height:100%" value="" onkeydown="xzgys()"  onchange="xinjianyong()"  maxlength="10">
                       </td>
                        <td> <input type="text" id="gysmc" name="gysmc" style="width:100%;height:100%" value="" readonly="readonly" class="readonlycolor"></td>
                         <td> <input type="text" id="cl" name="cl" style="width:100%;height:100%;background-color:#E6F1F7" value="" class="td_number1" readonly="readonly" ></td>
                          <td> <input type="text" id="sl" name="sl" style="width:100%;height:100%" value="0.00"  class="td_number1" onchange="common2()" maxlength="9"  onkeyup="if(isNaN(value))execCommand('undo')" onkeydown="if(event.keyCode==13)event.keyCode='9'" >
                                <input type="hidden" name="hjhk">
                          </td>
                           <td> <input type="text" id="jhj" name="jhj" style="width:100%;height:100%"  class="td_number1" onkeyup="if(isNaN(value))execCommand('undo')" maxlength="9" onkeydown="if(event.keyCode==13)event.keyCode='9'"  onchange="xinjianyong()">
                           </td>
                            <td>
                               <input type="text" id="fdkc" name="fdkc" style="width:100%;height:100%;background-color:#E6F1F7"  value="" class="td_number1" readonly="readonly" onmouseover="richContext(); return false;" onmouseout="hide()" onkeydown="if(event.keyCode==13)event.keyCode='9'">
                                 <div  id ="fdkcl" style="display:none;" >
                                 </div>
                            </td>
                             <td> <input type="text" id="beizhu" name="beizhu" style="width:100%;height:100%" value="" maxlength="50" onkeydown="if(event.keyCode==13)insertrow()" onchange="xinjianyong()">
                           </td> 
                </tr> 
                </c:if>
                这是js的代码 实现添加一行的功能
  ocell.innerHTML="<input type=checkbox  name=bj2  style='text-align:center'  onclick='bj1()' onkeydown=if(event.keyCode==13)event.keyCode='9' > <input type=hidden name=bj value=0>";
 
   var ocell=otr.insertCell(1);
   ocell.innerHTML="<input type=text id='hh' name=hh size=6 value='' style='width:100%;height:100%' onkeydown='common()' onchange='xinjianyong()'>";
   
       var ocell=otr.insertCell(2);
   ocell.innerHTML="<input type=text id='hwmc' name=hwmc size=13 value='' style='width:100%;height:100%' readonly=readonly class=readonlycolor>";
  
   var ocell=otr.insertCell(3);
   ocell.innerHTML="<input type=text id='gg' name=gg size=7 value='' readonly=readonly style='width:100%;height:100%' class=readonlycolor>";
   
   var ocell=otr.insertCell(4);
   ocell.innerHTML="<input type=text id='dw' name=dw size=4 value='' readonly=readonly style='width:100%;height:100%' class=readonlycolor>";
   
   var ocell=otr.insertCell(5);
   ocell.innerHTML="<input type=text id='lsj' class=td_number1 name=lsj size=7 value='' readonly=readonly  style='background-color:#E6F1F7;width:100%;height:100%'>";
   
   var ocell=otr.insertCell(6);
   ocell.innerHTML="<input type=text id='sccj' name=sccj size=14 value='' style='width:100%;height:100%' readonly=readonly class=readonlycolor>";
   
   var ocell=otr.insertCell(7);
   ocell.innerHTML="<input type=text id='gysbh' name=gysbh size=7 value='' onkeydown='xzgys()' style='width:100%;height:100%'   maxlength='10'>";
   
   var ocell=otr.insertCell(8);
   ocell.innerHTML="<input type=text id='gysmc' name=gysmc size=14 value='' readonly=readonly style='width:100%;height:100%' class=readonlycolor>";
   
   var ocell=otr.insertCell(9);
   ocell.innerHTML="<input type=text id='cl' name=cl size=4 value='' class=td_number1 readonly=readonly  style='background-color:#E6F1F7;width:100%;height:100%'>";
   
   var ocell=otr.insertCell(10);
   ocell.innerHTML="<input type=text id='sl' name=sl size=4 value='0.00' class=td_number1 onchange='common2()' style='width:100%;height:100%' maxlength='9' onkeydown=if(event.keyCode==13)event.keyCode='9'  onkeyup=if(isNaN(value))execCommand('undo') > <input type='hidden' name='hjhk'>";
   
   var ocell=otr.insertCell(11);
   ocell.innerHTML="<input type=text id='jhj' name=jhj size=5  class=td_number1 maxlength='9' style='width:100%;height:100%' onkeyup=if(isNaN(value))execCommand('undo')  onkeydown=if(event.keyCode==13)event.keyCode='9'>";
   
   var ocell=otr.insertCell(12);
   ocell.innerHTML="<input type=text id='fdkc' name=fdkc size=8 value='' class=td_number1 readonly=readonly style='width:100%;height:100%;background-color:#E6F1F7'   onmouseover='richContext(); return false;' onmouseout='hide()' onkeydown=if(event.keyCode==13)event.keyCode='9'> <div  id ='fdkcl' style='display:none;' ></div> " ;       var ocell=otr.insertCell(13); 
       ocell.innerHTML="<input type=text id='beizhu' name=beizhu size=8 value='' maxlength='50' style='width:100%;height:100%' onkeydown='if(event.keyCode==13)insertrow()' >";  
      这是jsp上 录入数据的主要代码 js实现的是添加一行的代码 当我再jsp上添加20条数据(每条数据大概有10个input左右)后 ,jsp页面会变得很慢 滚动条无法动弹 ,当到30条数据后 根本无法动弹,我想问问 有没有其他的控件录入数据??这样的的效率太低了,或者采用一些 其他的措施解决录入数据慢的问题?或者有没有什么写的控件能直接拿来用啊 ,请高人帮忙,困惑我很久了,忘大家多提意见 谢谢!!!!!!!                   

解决方案 »

  1.   

    lz的代码没有给全!
    我不知道你这个页面是否指数录入,要只是录入的话,你可以优化一下JS代码,看看能不能快。
    有没有现成的我也不知道。
    如果数据量却是很大,你可以让用户上传csv然后在解析放到数据库中,不用在html表格里录入。
    数据量大的情况下,本身在页面上录入也不方便,还有考虑session过期问题。
      

  2.   

    楼主可以考虑优化js代码,第一,没必要用到innerHtml,用createNode可能会效率高点
    第二,如果效率越来越慢,很有可能是循环出问题了,看看有没有死循环或者循环迭代了。
      

  3.   

    不要把显示和处理都放到一个页面里
    HTML只用来做门面就可以啦
    数据检验,业务逻辑都应该脱离出来