javascript - jQuery Performance Issues When Checking For Duplicates -
javascript - jQuery Performance Issues When Checking For Duplicates -
i have html table populated product list when user uploads csv file. often, table have on one thousand rows. problem is, when user clicks "submit" have check duplicate entries in 1 of inputs every row. takes extremely long amount of time , times unresponsive script warning.
here script i'm using check duplicates:
// check duplicate products $('#match_table').submit(function(evt) { var arr = document.getelementsbyname("pid[]"); var sorted_arr = new array(); (var = 0; < arr.length; i++) { sorted_arr[i] = new array(); sorted_arr[i][0] = arr[i].value; sorted_arr[i][1] = arr[i].id; } sorted_arr.sort((function(index){ homecoming function(a, b){ homecoming (a[index] === b[index] ? 0 : (a[index] < b[index] ? -1 : 1)); }; })(0)); var results = []; (var = 0; < sorted_arr.length - 1; i++) { if (sorted_arr[i + 1][0] == sorted_arr[i][0]) { results.push(sorted_arr[i][0]); evt.preventdefault(); document.getelementbyid(sorted_arr[i][1]).style.border = "1px solid red"; document.getelementbyid(sorted_arr[i+1][1]).style.border = "1px solid red"; } } if(results.length != 0){ homecoming false; } });
any ideas/examples on how improve performance on script? or how around problem? thanks!
edit: snippet of html
<form id="match_table" action="tool_tmaxupload.jsp" name="match_table" method="post"> <table class="nozebra"> <thead> <tr> <th class="essential"></th> <th class="essential">csv product</th> <th class="essential">csv desc</th> <th class="essential">match product</th> <th class="essential">match desc</th> <th class="essential">match vend</th> <th class="essential">amount</th> <th class="essential">to rebate</th> <th class="essential">to growth</th> <th class="essential">paid on what</th> </tr> </thead> <tbody> <tr class=even> <td><input type="checkbox" name="checkbox[]" class="checkall"></td> <td>343601</td> <td>test</td> <td><input type="text" size="8" name="pid[]" id="pid_0" value="343601"/></td> <td>combo lunch meat</td> <td><input type="text" size="8" name="ve[]" value="672" /> farmland foods inc</td> <td><input type="text" size="5" name="ramt[]" value="5.5"/></td> <td> <select name="torebate[]" id="torebate"> <option value="0" >no</option> <option value="1" selected=selected>yes</option> </select> </td> <td> <select name="togrowth[]" id="togrowth"> <option value="0" selected=selected>no</option> <option value="1" >yes</option> </select> </td> <td> <select name="pow[]" id="pow"> <option value="1" selected=selected>% of fob cost</option> <option value="2" >% of delivered cost</option> <option value="3" >$ per case</option> <option value="4" >$ per pound</option> <option value="5" >% of sold price</option> </select> </td> </tr> <tr class=odd> <td><input type="checkbox" name="checkbox[]" class="checkall"></td> <td>561720</td> <td>test</td> <td><input type="text" size="8" name="pid[]" id="pid_1" /></td> <td></td> <td><input type="text" size="8" name="ve[]" /></td> <td><input type="text" size="5" name="ramt[]" value="6.5"/></td> <td> <select name="torebate[]" id="torebate"> <option value="0" selected=selected>no</option> <option value="1" >yes</option> </select> </td> <td> <select name="togrowth[]" id="togrowth"> <option value="0" >no</option> <option value="1" selected=selected>yes</option> </select> </td> <td> <select name="pow[]" id="pow"> <option value="1" >% of fob cost</option> <option value="2" selected=selected>% of delivered cost</option> <option value="3" >$ per case</option> <option value="4" >$ per pound</option> <option value="5" >% of sold price</option> </select> </td> </tr> <tr class=even> <td><input type="checkbox" name="checkbox[]" class="checkall"></td> <td>193420</td> <td>test</td> <td><input type="text" size="8" name="pid[]" id="pid_2" value="346770"/></td> <td>ham spiral slic disc use346778</td> <td><input type="text" size="8" name="ve[]" value="672" /> farmland foods inc</td> <td><input type="text" size="5" name="ramt[]" value="7.5"/></td> <td> <select name="torebate[]" id="torebate"> <option value="0" >no</option> <option value="1" selected=selected>yes</option> </select> </td> <td> <select name="togrowth[]" id="togrowth"> <option value="0" selected=selected>no</option> <option value="1" >yes</option> </select> </td> <td> <select name="pow[]" id="pow"> <option value="1" >% of fob cost</option> <option value="2" >% of delivered cost</option> <option value="3" selected=selected>$ per case</option> <option value="4" >$ per pound</option> <option value="5" >% of sold price</option> </select> </td> </tr> <tr class=even> <td><input type="checkbox" name="checkbox[]" class="checkall"></td> <td>193420</td> <td>test</td> <td><input type="text" size="8" name="pid[]" id="pid_3" value="346771"/></td> <td>ham spiral sliced bone in</td> <td><input type="text" size="8" name="ve[]" value="672" /> farmland foods inc</td> <td><input type="text" size="5" name="ramt[]" value="7.5"/></td> <td> <select name="torebate[]" id="torebate"> <option value="0" >no</option> <option value="1" selected=selected>yes</option> </select> </td> <td> <select name="togrowth[]" id="togrowth"> <option value="0" selected=selected>no</option> <option value="1" >yes</option> </select> </td> <td> <select name="pow[]" id="pow"> <option value="1" >% of fob cost</option> <option value="2" >% of delivered cost</option> <option value="3" selected=selected>$ per case</option> <option value="4" >$ per pound</option> <option value="5" >% of sold price</option> </select> </td> </tr> <tr class=odd> <td><input type="checkbox" name="checkbox[]" class="checkall"></td> <td>191239</td> <td>test</td> <td><input type="text" size="8" name="pid[]" id="pid_4" value="346778"/></td> <td>ham spiral sliced bone in</td> <td><input type="text" size="8" name="ve[]" value="672" /> farmland foods inc</td> <td><input type="text" size="5" name="ramt[]" value="8.5"/></td> <td> <select name="torebate[]" id="torebate"> <option value="0" selected=selected>no</option> <option value="1" >yes</option> </select> </td> <td> <select name="togrowth[]" id="togrowth"> <option value="0" selected=selected>no</option> <option value="1" >yes</option> </select> </td> <td> <select name="pow[]" id="pow"> <option value="1" >% of fob cost</option> <option value="2" >% of delivered cost</option> <option value="3" >$ per case</option> <option value="4" selected=selected>$ per pound</option> <option value="5" >% of sold price</option> </select> </td> </tr> <tr class=even> <td><input type="checkbox" name="checkbox[]" class="checkall"></td> <td>448584</td> <td>test</td> <td><input type="text" size="8" name="pid[]" id="pid_5" /></td> <td></td> <td><input type="text" size="8" name="ve[]" /></td> <td><input type="text" size="5" name="ramt[]" value="9.5"/></td> <td> <select name="torebate[]" id="torebate"> <option value="0" >no</option> <option value="1" selected=selected>yes</option> </select> </td> <td> <select name="togrowth[]" id="togrowth"> <option value="0" >no</option> <option value="1" selected=selected>yes</option> </select> </td> <td> <select name="pow[]" id="pow"> <option value="1" selected=selected>% of fob cost</option> <option value="2" >% of delivered cost</option> <option value="3" >$ per case</option> <option value="4" >$ per pound</option> <option value="5" >% of sold price</option> </select> </td> </tr> </tbody> <tfoot> <tr> <th colspan="10"><input type="hidden" name="rbid" value="10034" /></th> </tr> </tfoot> </table> <input class="check" type="button" value="check all" /> <input id="addrow" type="button" value="add"> <input id="deleterow" type="button" value="delete"> <input type="submit" name="submit" value="load" /> </form>
javascript jquery jsp table
Comments
Post a Comment