Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][Symofny2]Długi czas oczekiwania na zwrot odpowiedzi
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Mam taki problem, że wysyłam żądania poprzez ajax a czas odpowiedzi 20 - 50 sek. co raczej nie jest normalne. Właściwie to chodzi mi o namierzenie przyczyny tego stanu rzeczy.
Najdziwniejsze jest to, że jeśli generuje te żądania w niewielkim odstępie czasowym to strony są wczytywane w czasie ok. 1 sek.
Opiszę to dokładniej:
Wysłanie żądanie z poziomu JS
[JAVASCRIPT] pobierz, plaintext
  1. $.ajax({
  2. url : '{{path("ajax_pokazprawypanel_adresyip")}}',
  3. type: 'POST',
  4. dataType: 'json',
  5. data : {
  6. 'klasaadresowa' : $(this).html()
  7. },
  8. cache : true,
  9. success : function(data) {
  10. $('.loader-kontener').hide();
  11. $('.tresc-prawy-boks-wewnatrz .box').html('');
  12. $('.tresc-prawy-boks-wewnatrz .box').hide();
  13. $( "form[name='klasyadresowe']" ).hide();
  14. var cc = 0;
  15. for (c in data["content"]) {
  16. if (cc < 64) $('.tresc-prawy-boks-wewnatrz .box1').append(data["content"][c]);
  17. else if (cc >= 64 && cc < 128) $('.tresc-prawy-boks-wewnatrz .box2').append(data["content"][c]);
  18. else if (cc >= 128 && cc < 192) $('.tresc-prawy-boks-wewnatrz .box3').append(data["content"][c]);
  19. else if (cc >= 192) $('.tresc-prawy-boks-wewnatrz .box4').append(data["content"][c]);
  20. ++cc;
  21. }
  22. $('.tresc-prawy-boks-wewnatrz .box').show(800);
  23. $('#zapisz-dns-identyfikator').show();
  24. if (data.hasOwnProperty("feedback")) {
  25. $("#flash-messanger").removeClass();
  26. $("#flash-messanger").addClass(data.feedback.class).html(data.feedback.message);
  27. flashMessage();
  28. }
  29. },
[JAVASCRIPT] pobierz, plaintext


Skrypt obsługujący ajax w kontrolerze, tutaj kombinowałem z cache - ale nie jestem pewien czy to dobrze robię:
  1. public function klienciAdresyipAction()
  2. {
  3. $response = new JsonResponse();
  4. $request = $this->container->get('request');
  5. $klasaadresowa = $request->request->get('klasaadresowa');
  6.  
  7. $repository = $this->getDoctrine()->getRepository('MyBundleCMSBundle:Klienci');
  8. $k = $repository->findAll();
  9.  
  10. $arr = array();
  11.  
  12. $repository = $this->getDoctrine()->getRepository('MyBundleCMSBundle:KlasyAdresowe');
  13. $aip = $repository->findOneByKlasa($klasaadresowa);
  14.  
  15. $adresyip = $aip->getAdresyip();
  16.  
  17. if (count($adresyip) > 0) {
  18. $i = 0;
  19. foreach ($adresyip as $ip) {
  20. $f = array();
  21. $f .= '<option value=""></option>';
  22. foreach ($k as $klient) {
  23. if (is_object($ip->getKlienci()) && $klient->getId() == $ip->getKlienci()->getId()) $f .= '<option value="'.$klient->getId().'" selected>'.$klient->getNazwa().'</option>';
  24. else $f .= '<option value="'.$klient->getId().'">'.$klient->getNazwa().'</option>';
  25. }
  26.  
  27. $revdns = $ip->getDns();
  28. $arr[] = array ('<div class="wybierz-klienta-kontener"><input type="hidden" name="revdns[]" value="'.$revdns.'"><input type="hidden" name="adres[]" value="'.$ip->getAdres().'"><input type="hidden" name="klasaadresowa[]" value="'.$klasaadresowa.'"><table><tr><td><label class="adres-ip" for="select-'.$i.'">'. $ip->getAdres() .'</label></td><td><select name="wybierz-klienta[]" id="select-'.$i.'" class="wybierz-klienta">'. $f . '</select></td><td><div title="'.$revdns.'" class="revdns">'.$revdns.'</div></td></tr></table></div>' );
  29. ++$i;
  30. ///<input name="maska[]" class="maska" type="text" size="1" value="">
  31. }
  32. $final['content'] = $arr;
  33. }
  34.  
  35. else {
  36. $f = array();
  37. $f .= '<option value=""></option>';
  38. foreach ($k as $klient) {
  39. if ($klient->getNazwa() == 'Iwacom') $f .= '<option value="'.$klient->getId().'" selected>'.$klient->getNazwa().'</option>';
  40. else $f .= '<option value="'.$klient->getId().'">'.$klient->getNazwa().'</option>';
  41. }
  42.  
  43. for ($i = 0; $i < 256; $i++) {
  44. $revdns = gethostbyaddr($klasaadresowa.'.'.$i);
  45. $arr[] = array ('<div class="wybierz-klienta-kontener"><input type="hidden" name="revdns[]" value="'.$revdns.'"><input type="hidden" name="adres[]" value="'.$klasaadresowa.'.'.$i.'"><input type="hidden" name="klasaadresowa[]" value="'.$klasaadresowa.'"><table><tr><td><label class="adres-ip" for="select-'.$i.'">'. $klasaadresowa.'.'.$i .'</label></td><td><select name="wybierz-klienta[]" id="select-'.$i.'" class="wybierz-klienta">'. $f . '</select></td><td><div title="'.$revdns.'" class="revdns">'.$revdns.'</div></td></tr></table></div>' );
  46. }
  47. $final['content'] = $arr;
  48. }
  49.  
  50. $response->setData($final);
  51. $response->setPublic();
  52. $response->setMaxAge(24*60*3600); //1 day
  53. $response->setClientTtl(24*60*3600); //1 day
  54. $response->headers->addCacheControlDirective('must-revalidate', true);
  55. return $response;
  56. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 15:42