हमारी वर्तमान परियोजना में हम एक पीडीएफ डाउनलोड प्रदान कर रहे हैं जिसे उपयोगकर्ता द्वारा सबमिट किए गए HTML फॉर्म के माध्यम से अनुकूलित किया जा सकता है। गतिशील रूप से पीडीएफ उत्पन्न करने में कई सेकंड लगते हैं और मैं इसे कल्पना करना चाहता हूं, उदा। डाउनलोड शुरू होने तक सबमिट बटन को अक्षम करके। दुर्भाग्यवश, डाउनलोड शुरू होने पर मुझे पता लगाने का कोई तरीका नहीं मिला। इसलिए मुझे नहीं पता कि सबमिट बटन को फिर से सक्षम करना कब होगा।जावास्क्रिप्ट में डाउनलोड की शुरुआत का पता लगाने का कोई तरीका है?
मैंने पहले से ही अपने HTML फॉर्म के लक्ष्य के रूप में IFrame निर्दिष्ट करने का प्रयास किया है, यह उम्मीद करते हुए कि onload
ईवेंट ट्रिगर किया जाएगा। हालांकि, ऐसा नहीं है - शायद क्योंकि पीडीएफ को "Content-disposition: attachment
" हेडर के साथ भेजा गया है और यह वास्तव में IFrame में लोड नहीं होता है।
एकमात्र समाधान जो मैं अभी सोच सकता हूं, उसमें पीडीएफ को सर्वर पर एक अस्थायी फ़ाइल में उत्पन्न करना शामिल है, जिसे मैं टालना चाहता हूं।
*) मुझे यह स्पष्ट करने दें: मुझे यह जानने की आवश्यकता नहीं होगी कि डाउनलोड समाप्त हो गया था या फिर भी यह वास्तव में शुरू हुआ था। मैं उस बिंदु का पता लगाना चाहता हूं जिस पर ब्राउजर उपयोगकर्ता से पूछता है कि फ़ाइल खोलना या सहेजना है या नहीं। मुझे लगता है कि यह तब होता है जब ब्राउज़र HTTP शीर्षलेख प्राप्त करता है।
क्या आप जानना चाहते हैं कि डाउनलोड कब शुरू होता है या कब पूरा होता है? किसी भी तरह से, मुझे नहीं लगता कि एक अस्थायी फ़ाइल एक फर्क पड़ेगी। क्लाइंट-साइड पर आप यह नहीं बता सकते कि फ़ाइल सर्वर पर बैठी थी या फ्लाई पर जेनरेट की गई थी। – Prestaul
तो आप फॉर्म जमा करते हैं, और इस सबमिशन की प्रतिक्रिया एक पीडीएफ फ़ाइल है? विराम के दौरान, ब्राउज़र उस मोड में है जहां यह सर्वर से प्रतिक्रिया की प्रतीक्षा कर रहा है? क्या ये सही है? – Breton
@ ब्रेटन: सही! @Pretaul: मैं जानना चाहता हूं कि डाउनलोड कब शुरू होता है। इसलिए, मैं एक temp फ़ाइल बना सकता हूं, छिपे हुए IFrame को कुछ HTML प्रतिक्रिया प्रदान कर सकता हूं, और उसके बाद ओपन लोड हैंडलर में जावास्क्रिप्ट द्वारा temp फ़ाइल ला सकता हूं। –