के साथ PHP समस्या मेरे पास एक सत्र हैंडलर क्लास है जो स्क्रिप्ट के अंत में session_write_close() को कॉल करती है। यह बीमा करता है कि यहां तक कि अगर कोई हेडर() या निकास() जारी किया जाता है तो सत्र डेटा सहेजा जाता है।समवर्ती सत्रों और AJAX
public function __destruct()
{
session_write_close();
}
हालांकि, मैंने देखा है कि मेरे AJAX पृष्ठों में से एक के लिए दो सत्र अपडेट डेटाबेस परत द्वारा किए जाते हैं।
मेरा अनुमान है कि [1] पृष्ठ लोड होता है और एक [2] AJAX अनुरोध भेजता है। [2] AJAX अनुरोध को [1] पृष्ठ को session_write_close()
पर कॉल करने का मौका मिलने से पहले सत्र शुरू करना होगा।
[2] AJAX पृष्ठ ने सत्र को लोड करने के बाद [1] पृष्ठ अंततः सत्र को बचाता है और उसके बाद [2] AJAX अनुरोध इसके सत्र को बचाता है - जो पहले को ओवरराइट करता है!
यह इस प्रकार दिखाई देंगे:
[1] page loads session
[1] page sends output
[2] ajax loads session
[1] page saves session
[2] ajax sends output
[2] ajax saves session
क्या मुझे यकीन है कि एक पृष्ठ एक सत्र लोड नहीं होने से पहले अगला सत्र को बचाने के लिए एक मौका है बनाने के लिए क्या करते हैं?
यह बहुत रोचक है ... मुझे इस तरह की समस्या कभी नहीं मिली (सिलिकॉन पर दस्तक दें) कई प्रकार के उद्देश्यों के लिए अजाक्स उपयोग के बावजूद मुझे इस पर जवाब देने में दिलचस्पी है। – prodigitalson