![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 686 Pomógł: 0 Dołączył: 10.11.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witam,
Mam taki problem ze buduje klienta poczty elektronicznej, no i teraz za kazdym razem gdy wysylam jakies żądanie przechodzi przez bootstrap'a wszystko leci przez kontrolery i tam zostaje wywolany model oraz widoki. Sęk w tym ze za kazdym żądaniem musze od poczatku uzywac funkcji imao_open, wyglada to mniej wiecje tak : Oto kawalek kontrolera :
Linijka
Odpowiada za polaczenie sie do skrzynki imap (w modelu jest to imap_open()) a to trwa przynajmniej 5 sekund, i za kazdym razem gdy np chce wyswietlic inna skrzynke musze czekac az zainicjuje sie kolejne polaczenie, to samo gdy chce zobaczyc dana wiadomosc, w w/w przykladnie funkcja message($params) tez musi połączyć sie od nowa poprzez imap_open i przez to aplikacja jest strasznie wolna, jak moznaby poprawic szybkosc aplikacji ? Ktos kto pisal kiedykolwiek klienta pocztowego moze cos podpowiedziec ? Edit---------------------------------------------- Moje pytanie jest tak proste czy tak trudne ze nikt nie chce odpowiedziec ? (IMG:style_emoticons/default/dry.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Wolfie... Przecież imap_connect zwraca Ci identyfikator połączenia. Przechowuj go w ogólnodostępnym miejscu i używaj w razie pobierania wiadomości czy wszelkich operacjach, aż do wylogowania włącznie. Co do połączenia z nowym mailbox to zawsze poczekasz sobie na otwarcie połączenia i tutaj nic nie przyspieszysz raczej. To co możesz zrobić ewentualnie to kombinowanie z systemem zakładek. Każdy mailbox byłby jako obiekt AJAX w swojej zakładce. Przechowywać byś musiał tylko uchwyty connect na każdą z zakładek i wykonywać żądania na odpowiedniej skrzynce w zależności od tego w której zakładce co. Bo myślę, że choć wykonanie rozłączenia z jedną skrzynką by logować do innej jest prostsze, to potem przejście znów do pierwszej wylogowuje z drugiej i ponownie loguje do pierwszej. A tak kombinując z AJAXem, byś mógł mieć tyle kont otwartych ile chcesz (a raczej ile komp wytrzyma).
Tutaj akurat teoretyzuję i raczej na logikę wymyślam rozwiązanie, bo nigdy nie potrzebowałem tworzyć webowego klienta mailowego. Myślę, że rozwiązanie jakie proponuję, usprawniło by i przyspieszyło całość. Proponuję AJAX w systemie zakładek, bo przeładowywanie całej strony kończyło by się połączeniami do każdej ze skrzynek i asynchroniczność jest tutaj moim zdaniem jak najbardziej wskazana. Ten post edytował thek 16.10.2009, 11:27:34 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 686 Pomógł: 0 Dołączył: 10.11.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
No ale ja wlasnie mam to zrobione ajaxem. Ajaxem przekazuje zmienne do kontrolera, w raczej do index.php ktory tworzy instancje klasy MainController i dalej przekazuje zmienne do odpowiedniego kontrolera, wiec tak naprawde mi nie przeladowuje calej strony, ale żądania leca od poczatku ze tak powiem.
Juz podobny temat omawialem z wookieb, zobacz tutaj No i wlasnie ta rozmowa z wookieb mnie zmusila zeby napisac ten temat, a jakbym łączył sie z serwerem zanim jeszcze przekaze żądania do bootstrapa to cos da ? Czyli tak jakby połączenie z serwerem pocztowym bylo niezależne od żądań..... Cytat Co do połączenia z nowym mailbox to zawsze poczekasz sobie na otwarcie połączenia i tutaj nic nie przyspieszysz raczej. No jasne, ale jak zrobic zeby nie musiec wywolywac imap_open , a jednynie imap_reopen , bo właśnie przez to ze musze ciagle wywoływać imap_open to ta aplikacja jest tak wolna..... Ten post edytował Wolfie 16.10.2009, 12:14:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 08:25 |