【发布时间】:2013-03-20 16:20:54
【问题描述】:
我有以下问题,希望有人能告诉我问题出在哪里..
我的表格有 3 个州、城市和社区的选择选项。最后 2 个选择取决于它的前一个值。 一切运行良好,但需要 2 秒才能显示新选项(更改之前的选择后).. 我知道这里不需要 json(对吗?).. 但是有没有办法减少响应时间?
function carga(tipo, valor, selector){
$.ajax({
type: 'post',
url: "include/sel.php",
data: { tipo: tipo, valor: valor },
error: function() {
$(selector).html('<option>Ha ocurrido un error</option>');
},
success: function (response) {
$(selector).html(response);
}
})
}
编辑:我忘了..我正在使用 xampp
这是我的 sel.php
include('dbcs.php');
$i = $_POST['tipo'];
$valor = $_POST['valor'];
switch($i){
case 'provincia':
$consulta_sql = 'Select * from tbl_zona_provincias';
break;
case 'partido':
$consulta_sql = 'Select idPartido, partido from tbl_zona_partidos Where codProvincia = "'.$_POST['valor'].'"';
break;
case 'localidad':
$consulta_sql = 'Select idLocalidad, localidad from tbl_zona_localidades Where idPartido = "'.$_POST['valor'].'"';
break;
}
if(!$resultados = $db->query($consulta_sql)){
die('Se produjo un error al intentar enviar la consulta [' . $db->error . ']');
} else {
while($row = $resultados->fetch_array()){
if($i == 'provincia'){
$option = '<option value="'.$row['codProvincia'].'">'.$row['provincia'].'</option>';
} else if($i == 'partido'){
$option = '<option value="'.$row['idPartido'].'">'.$row['partido'].'</option>';
} else {
$option = '<option value="'.$row['idLocalidad'].'">'.$row['localidad'].'</option>';
}
echo $option;
}
$resultados->free();
}
$db->close();
【问题讨论】:
-
我认为这不是 javascript 的问题,您需要检查您的服务器端代码和网络延迟
-
这可能取决于您的网速,或 sel.php 的页面加载时间。如果您的选项不是很多,您可以将它们保存在 javascript 数组中,或者如果它们有很多选项,请将最常用的项目保存在 js 数组中,当用户选择一个选项时,您可以显示一个加载图像!这不能解决你的问题,它只是一个建议的技巧;)
标签: jquery performance time