पृष्ठभूमि: हम पंजीकरण/भुगतान पृष्ठ लिखने की प्रक्रिया में हैं, और हमारा दर्शन पहले सर्वर की तरफ सभी सत्यापन और त्रुटि जांच को कोड करना था, और फिर ग्राहक जोड़ें दूसरी चरण (अन-अवरोधक jQuery) के रूप में साइड सत्यापन।क्या आधुनिक ब्राउज़र में फॉर्म पोस्ट व्यवहार बदल गया है? (या ब्राउजर द्वारा डबल क्लिक कैसे किए जाते हैं)
हम डबल क्लिक सर्वर पक्ष को अक्षम करना चाहते थे, इसलिए हमने एक साथ पोस्ट/रेस स्थितियों को संभालने के लिए कुछ लॉकिंग, थ्रेड-सुरक्षित कोड लिखा था। जब हमने इसका परीक्षण करने की कोशिश की, तो हमें एहसास हुआ कि हम एक साथ पोस्ट या दौड़ की स्थिति उत्पन्न नहीं कर पाएंगे।
मैंने सोचा था कि (पुराने ब्राउज़र में वैसे भी) डबल क्लिक करके एक सबमिट बटन पर इस प्रकार के रूप में काम:
- उपयोगकर्ता पर दो बार क्लिक बटन सबमिट करें।
- ब्राउज़र पहली पर एक पोस्ट क्लिक
- दूसरे पर क्लिक करने पर भेजता है, ब्राउज़र को रद्द करता/आरंभिक पोस्ट पर ध्यान नहीं देता, और एक दूसरे के बाद शुरू की (पहले पहली पोस्ट एक प्रतिक्रिया के साथ वापस आ गया है)।
- ब्राउज़र प्रारंभिक पोस्ट प्रतिक्रिया को अनदेखा करते हुए, लौटने के लिए दूसरी पोस्ट के लिए प्रतीक्षा करता है।
मैंने सोचा था कि सर्वर साइड से इसे इस तरह देखा: सर्वर, दो एक साथ पोस्ट अनुरोध हो जाता है निष्पादित करता है और उन दोनों का जवाब (अनजान है कि कोई भी पहली प्रतिक्रिया सुन रहा है)।
हमारे परीक्षण (फ़ायरफ़ॉक्स 3.0, IE 8.0) से यह है कि क्या वास्तव में होता है:
- उपयोगकर्ता पर दो बार क्लिक सबमिट बटन
- ब्राउज़र पहली क्लिक
- ब्राउज़र के लिए एक पोस्ट भेजता है दूसरे क्लिक पर कतार, लेकिन पहले क्लिक से प्रतिक्रिया के लिए इंतजार कर रहा है।
- प्रतिक्रिया पहले क्लिक से लौटती है (प्रतिक्रिया को अनदेखा किया जाता है?)।
- ब्राउज़र दूसरे क्लिक के लिए एक पोस्ट भेजता है।
तो एक सर्वर साइड से: सर्वर एक भी पद जो इसे कार्यान्वित और का जवाब प्राप्त करता है। फिर, सर्वर को दूसरा अनुरोध प्राप्त होता है जिसमें यह निष्पादित होता है और प्रतिक्रिया देता है।
मेरा सवाल यह है कि, क्या यह हमेशा इस तरह से काम करता है (और मैं अपना दिमाग खो रहा हूं)? या यह आधुनिक ब्राउज़र में एक नई सुविधा है जो सर्वर पर एक साथ पोस्ट भेजने के लिए रोकती है?
ऐसा लगता है कि सर्वर की ओर से डबल क्लिक रोकथाम के लिए, हमें एक साथ पोस्ट या दौड़ की स्थिति के बारे में चिंता करने की ज़रूरत नहीं है। केवल कतारबद्ध पदों के बारे में चिंता करने की आवश्यकता है।
किसी भी प्रतिक्रिया/टिप्पणियों के लिए अग्रिम धन्यवाद।
एलेक्स
+1 शानदार स्पष्ट प्रश्न, और उपयोगकर्ता कार्रवाई आरेख देखना दिलचस्प है। मुझे जवाब का यकीन नहीं है, लेकिन आम तौर पर चीजें * दो से अधिक क्लिक को सम्मानित करने के बजाय जा रही हैं - पुराने, डेस्कटॉप-केंद्रित प्रतिमान होने पर डबल-क्लिक करना। –
अद्यतन: व्यवहार IE8 के लिए अलग दिखता है (एकाधिक एक साथ पोस्ट सर्वर पर) और एफएफ/क्रोम (एकाधिक क्लिक कतार)। हम अधिक निष्कर्ष पोस्ट करेंगे क्योंकि हम अधिक परीक्षण करते हैं। –