Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][Symofny2]Długi czas oczekiwania na zwrot odpowiedzi
amii
post 25.07.2014, 09:09:50
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. }


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
pedro84
post 25.07.2014, 10:05:00
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Zaraz, 20 sekund czeka na odpowiedź z kontrolera?

PS. Weź popraw te spaghetti, bo oczy krwawią sad.gif


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
amii
post 25.07.2014, 13:36:06
Post #3





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

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


Tak taki jest czas odpowiedzi na akcję kontrolera tą widoczną u góry.
Kod jest taki bo nie wiem jak zwrócić z ajaxa cały formularz


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
skowron-line
post 25.07.2014, 13:54:33
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(amii @ 25.07.2014, 13:36:06 ) *
Kod jest taki bo nie wiem jak zwrócić z ajaxa cały formularz

http://symfony.com/doc/current/cookbook/fo...submitted-forms


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
by_ikar
post 25.07.2014, 14:43:47
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Czy ten problem objawia się na localu czy gdzieś na serwerze zdalnym? (jeżeli na localu, to jeszcze powiedz czy masz windowsa 8).
Go to the top of the page
+Quote Post
amii
post 31.07.2014, 19:38:14
Post #6





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

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


Prawdopodobnie to mogła być kwestia braku zainstalowanego APC accelarator, po instalacji działa wyrażnie szybciej, aczkolwiek jeszcze wybadam sprawę dokładniej bo sam jestem tego ciekawy.
Serwer to zdalan maszyna z Debianem.


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 09:27