什麼是更有效的'實時搜索功能'?什麼是更有效率?在javascript或php中生成每個tr?
在有一點點延遲KEYUP是提出的要求,記錄回來JSON和我追加那些在這條路上:
$.ajax({
type: "POST",
url: "/spares/search/getresults",
dataType: "json",
data: "val="+ searchval,
success: function(response){
if (response.error == false) {
$.each(response.result, function(index, value){
$(".choosCred").append("<tr class='productChoose'> <td class='hide'>"+ value.id +"</td> <td class='hide'>"+ prod_id +"</td> <td class='hide'>"+ article +"</td> <td>"+ value.cd_cred +"</td> <td >"+ value.name_org +"</td> <td >"+ value.quality +"</td> <td class='hide'>"+ article_description +"</td> <td>" + '<button type="button" id="add"class="btn-xs btn btn-info add">Add </button>' +"</td> </tr>");
});
}
}
});
但我可以生成PHP全表,然後追加它像這樣的:
$.ajax({
type: "POST",
url: "/spares/search/getresults/",
data: "SearchTerm="+ searchValue,
success: function(response){
$(".products tbody").html(response).show();
}
});
注:在通過每個結果的PHP代碼我環路和一些值添加到它,比我產生那裏的表,因爲我已經有一個for循環。當我追加它時,它閃電般快速。當我用javascript追加記錄並循環遍歷每個json結果時,它會變慢。
什麼是最好的和禁食的方式來做到這一點?或者還有另一個訣竅呢?
如果記錄數量很高,第二種方法會使瀏覽器掛起。 – nikhil
很明顯,減少響應的重量是更好的,所以在javascript中這樣做更有意義 – Yaakov
在keyup上?那麼如果用戶使用上下文菜單將文本粘貼到輸入中呢?不要忘記處理它 –