2013-11-14 2 views
1

У меня есть раскрывающийся список, в котором я показываю данные из базы данных, когда я выбираю любые данные, это не быстро обновляет страницу, когда она выбрана, но обновляет страницу после 5 секунд, может кто-нибудь помочь мне, как это исправить, ниже мой код:onchange функция требует времени, чтобы обновить страницу

Javascript:

$(function() { document.ready 
    $("#client").on("change", function() { 
     var ID=$(this).attr('id'); 
     var clientid=$("#client").val(); 
     $.ajax({ 

      type: "POST", 
      data: { 
       clientselect: $(this).val() 
      }, 
      success: function(data) { 
       $("#display").html(data); 
       window.location = '?action=clientnetworkpricelist&clientid='+clientid+''; 
       $("#flash").hide(); 
      } 
     }); 
    }); 
}); 

Html

<select name="client" id="client" style="margin:-24px 0 0 1px;background-color:#E8E8E8;width:104px;position: absolute;"> 
    <option value="">Select Client</option> 
<?php 

$sql=mysql_query("select * from client_list"); 

$clientid=$_GET['clientid']; 



while($row=mysql_fetch_assoc($sql)) 

{ 


    if(strlen($_GET['clientid'])>0 && $_GET['clientid']==$row['clientid']){ 
    print' <option id="client" name="client" value="'.$row['clientid'].'" selected>'.$row['clientid'].' </option>';} 

    else{ 

      print' <option id="client" name="client" value="'.$row['clientid'].'" >'.$row['clientid'].' </option>'; 
    } 

    } 



    ?> 


</select> 
+2

Вы делаете запрос ajax, когда вы используете свой обратный вызов. Похоже, что этот запрос требует времени для реализации. Используйте отладчик браузера, чтобы увидеть точное время для вашего запроса, а затем вы поймете, что вам нужно ускорить работу на стороне сервера. – igor

+1

Не используйте mysql для работы с db. лучше использовать mysqli или PDO. – sergio

+0

Что происходит после того, как «успех:' есть », дождитесь завершения запроса, извлеките данные, затем измените окно.» С Firefox + Firebug вы можете видеть, сколько времени занимает ровно – DanFromGermany

ответ

4

Как говорит Китти, задержка - это время, необходимое для получения данных из вашей базы данных. Вам нужно найти способ ускорить ответ базы данных.

Link, которые могут быть полезны: http://www.peachpit.com/articles/article.aspx?p=1851233

2

необходимо время для реализации AJAX запроса на сервер и зависит от времени, необходимого для вас на стороне сервера кода для ответа + сетевого транспорта и прочего.

Смежные вопросы