Ich habe Seite mit Kunden und mit Ajax im Laden von Informationen darüber, ob sie uns E-Mail senden oder nicht.Ausführen imap_close funktioniert nicht
-Code sieht wie folgt aus:
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'email';
$password = 'password';
$this->session->data['imap_inbox'] = $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
foreach($customers as $customer){
$emails = imap_search($inbox, 'FROM ' . $email);
// Processing info
}
Aber es gibt etwa 20 bis 30 Kunden auf der einen Seite, so dass die proccess dauert manchmal etwa 10-20 Sekunden um zu zeigen, und ich war nicht in der Lage, den Prozess zu optimieren.
Wenn der Client versucht, eine Seite neu zu laden, wartet er immer noch, bis imap_search
fertig ist. Beim erneuten Laden kann es also 20 Sekunden dauern, bis die Seite tatsächlich neu geladen wird.
Ich habe versucht, die ajax
mit beforeunload
Funktion zu brechen und die imap
zu schließen, aber das funktioniert nicht.
Mein Code:
Ajax:
$(window).bind('beforeunload',function(){
imap_email.abort(); // the ajax is succesfully aborted(as showed in console), yet the page still takes considerable time to reload
$.ajax({
type: 'GET',
url: 'getimapmails&kill=1',
async:false
}); // ajax call to the same function to call imap_close
});
PHP:
if($this->request->get['kill'] == '1'){
imap_close($this->session->data['imap_inbox']);
unset($this->session->data['imap_inbox']);
$kill == 1;
exit;
}
Aber auch wenn die ajax
abgebrochen und imap_close
heißt auf variable imap_open
hält, ist es noch dauert 10- 20 Sekunden um die Seite neu zu laden, also gehe ich davon aus, dass der Imap nicht geschlossen wurde.
Wie schließe ich die imap
, damit die Seite sofort neu laden kann?
Haben Sie irgendwelche Imap-Logs, die Sie sehen können, während Sie aktualisieren, um zu sehen, ob es die Verbindung schließt oder nicht? Es fühlt sich im Allgemeinen so an, als müssten Sie an diesem Punkt an der Imap-Optimierung des Codes arbeiten. – mkaatman
Es kann ein Problem der Sitzungssperre geben; – itzmukeshy7