Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP ऐप में लंबित AJAX अनुरोध रद्द करें?

संभावित कारण श्रृंखला

  1. सर्वर को पता नहीं है कि XHR अनुरोध रद्द कर दिए गए हैं, और इसलिए संबंधित PHP प्रक्रियाएं चलती रहती हैं
  2. ये PHP प्रक्रियाएं सत्रों का उपयोग करती हैं, और इस सत्र में समवर्ती पहुंच को तब तक रोकती हैं जब तक कि वे समाप्त न हो जाएं

संभावित समाधान

उपरोक्त दो बिंदुओं में से किसी एक को संबोधित करने से श्रृंखला टूट जाती है और समस्या ठीक हो सकती है:

  1. (a) ignore_user_abort FALSE है डिफ़ॉल्ट रूप से, लेकिन आप एक गैर-मानक सेटिंग का उपयोग कर रहे होंगे। इस सेटिंग को वापस FALSE . में बदलें आप में php.ini या ignore_user_abort(false) पर कॉल करें उन लिपियों में जो इन बाधित अनुरोधों को संभालती हैं।

दोष:स्क्रिप्ट बस समाप्त हो जाती है। कोई भी कार्य प्रगति पर है, संभवतः सिस्टम को गंदी स्थिति में छोड़कर, छोड़ दिया जाता है।

  1. (b) डिफ़ॉल्ट रूप से, PHP यह पता नहीं लगाएगी कि उपयोगकर्ता ने कनेक्शन को तब तक निरस्त कर दिया है जब तक क्लाइंट को जानकारी भेजने का प्रयास नहीं किया जाता है। echoकरें आपकी लंबे समय से चल रही स्क्रिप्ट के दौरान समय-समय पर कुछ।

दोष:यह डमी डेटा आपकी स्क्रिप्ट के सामान्य आउटपुट को दूषित कर सकता है। और यहाँ भी, स्क्रिप्ट सिस्टम को गंदी स्थिति में छोड़ सकती है।

  1. एक PHP सत्र सर्वर पर एक फ़ाइल के रूप में संग्रहीत किया जाता है। session_start() पर , स्क्रिप्ट सत्र फ़ाइल को राइट मोड में खोलती है, प्रभावी रूप से उस पर एक विशेष लॉक प्राप्त करती है। बाद के अनुरोध जो समान सत्र का उपयोग करते हैं, लॉक जारी होने तक होल्ड पर रखा जाता है। यह तब होता है जब स्क्रिप्ट समाप्त हो जाती है, जब तक कि आप सत्र को स्पष्ट रूप से बंद नहीं करते। session_write_close() पर कॉल करें या session_abort() जितनी जल्दी हो सके।

दोष:बंद होने पर, सत्र अब और नहीं लिखा जा सकता (जब तक कि आप सत्र को फिर से खोलें , लेकिन यह कुछ हद तक सुरुचिपूर्ण हैक है)। साथ ही स्क्रिप्ट चलती रहती है, संभवतः संसाधनों को बर्बाद कर रही है।

मैं निश्चित रूप से अंतिम विकल्प की सिफारिश करता हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि संदेश:थ्रेड मुख्य org.hibernate.HibernateException में अपवाद:स्टैक्स स्ट्रीम तक पहुँचने में त्रुटि

  2. php . में mysql की तालिका से गिनती (*) का चयन करें

  3. दो असंबंधित प्रश्नों के परिणामों को एक दृश्य में संयोजित करें

  4. तंग करना? #1146 - तालिका 'xxx.xxxxx' मौजूद नहीं है

  5. हाइबरनेट + MySQL:डेटाबेस और तालिकाओं के लिए एन्कोडिंग utf-8 कैसे सेट करें