Salve ragazzi come da titolo carico una select dinamicamente con ajax, consideriamo che la select ha circa 2500 record ma a caricarsi impiega più di 10 secondi , secondo voi è normale ??? secondo me è dato dal fatto dei 2 cicli eseguiti per caricare array e poi per caricare "option"
cosa posso fare per velocizzarla??? vi lascio parte del codice cosi che possiate dare un'occhiata...
html
jscodice:<select name="sel_articoli" id="sel_articoli" data-placeholder="Seleziona Articolo" class="chosen-demo form-control"><option value=""></option></select>
phpcodice:$.ajax({ url:'php/ajax_articoli.php', data: {Tipo_Sel: "SEL-PREF"}, type:"POST", dataType: 'json', success: function(data){ var $i=0; $.each(data,function(key,val){ $("#sel_articoli").append('<option value="'+val.id+'">'+val.codice+" - "+val.descrizione+'</option>').trigger("chosen:updated"); if (val.id_pref==1){ $('#sel_articoli option:last').addClass('select-pref'); if ($i==0){ $("#sel_articoli").val(val.id); $i+=1; } } }) $("#sel_articoli").append('<option value="0">Nessuna Selezione</option>').trigger("chosen:updated"); //controllo se ha un valore di default e lo imposto if (isEmpty(iid)){ //altrimenti lo metto vuoto if ($i==0){ $("#sel_articoli").val(0); } } else { $("#sel_articoli").val(iid); } } }); }
codice:if ($_POST["Tipo_Sel"] == "SEL-PREF") { $query = "SELECT * FROM tb_articoli WHERE tb_articoli.id_del<>1 ORDER BY id_Pref DESC, codice ASC"; $result = mysqli_query($connect, $query); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $data[]=$row; } echo json_encode($data); } else{ $array_text["msg"]= "Nessun Dato"; $array_text["status"]= "error"; echo json_encode($array_text); } }

Rispondi quotando
php/ajax_articoli.php