मेरे पास ग्राहकों के साथ पृष्ठ है और AJAX आईएम लोडिंग जानकारी के साथ यह है कि वे हमें ईमेल भेजते हैं या नहीं।निष्पादित imap_close काम नहीं कर रहा
कोड इस तरह दिखता है:
$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
}
लेकिन वहाँ लगभग एक पृष्ठ पर 20-30 ग्राहक हैं, इसलिए प्रक्रिया कभी कभी के बारे में 10-20 सेकंड लेता है दिखाने के लिए और मैं इस प्रक्रिया का अनुकूलन करने में असमर्थ था।
लेकिन जब ग्राहक किसी पृष्ठ को फिर से लोड करने का प्रयास करता है, तो यह अभी भी imap_search
खत्म होने से पहले प्रतीक्षा कर रहा है, इसलिए जब पृष्ठ को वास्तव में पुनः लोड करने से पहले इसे पुनः लोड करने में 20 सेकंड लग सकते हैं।
मैंने ajax
को beforeunload
फ़ंक्शन के साथ निरस्त करने की कोशिश की है और imap
बंद करें लेकिन यह काम नहीं कर रहा है।
मेरे कोड:
अजाक्स:
$(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
});
पीएचपी:
if($this->request->get['kill'] == '1'){
imap_close($this->session->data['imap_inbox']);
unset($this->session->data['imap_inbox']);
$kill == 1;
exit;
}
लेकिन फिर भी ajax
निरस्त किया जाता है और imap_close
चर पकड़े imap_open
पर कहा जाता है, यह अभी भी लेता है 10- पृष्ठ को पुनः लोड करने के लिए 20 सेकंड, इसलिए मुझे लगता है कि इमाप बंद नहीं था।
मैं imap
कैसे बंद करूं ताकि पृष्ठ तुरंत पुनः लोड हो सके?
क्या आपके पास कोई इमेप लॉग है जो आप देख सकते हैं कि आप यह देखने के लिए ताज़ा हैं कि यह कनेक्शन बंद कर रहा है या नहीं? आमतौर पर ऐसा लगता है कि आपको इस बिंदु पर कोड पर इमेप ट्यूनिंग पर काम करने की आवश्यकता है। – mkaatman
सत्र लॉक का कोई मुद्दा हो सकता है; – itzmukeshy7