जावास्क्रिप्ट फ़ाइलों की सेवा करते समय, एप्लिकेशन / जावास्क्रिप्ट या एप्लिकेशन / x-जावास्क्रिप्ट का उपयोग करना बेहतर होता है


95

पूरा सवाल शीर्षक में फिट बैठता है। और कुछ संदर्भ जोड़ने के लिए: मैं यह नहीं पूछ रहा हूं कि चश्मा क्या कह रहे हैं, उसके अनुसार सबसे अच्छा है, बल्कि आजकल जो ब्राउज़र का मिश्रण दिया जाता है वह सबसे अच्छा काम करता है।

कुछ डेटा बिंदु:

  • Google text/javascriptअपने होम पेज पर उपयोग किए गए JS के लिए उपयोग करता है ।
  • Google text/javascriptGoogle डॉक्स पर उपयोग करता है ।
  • Google application/x-javascriptअपने अजाक्स पुस्तकालयों की सेवा के साथ जावास्क्रिप्ट फ़ाइलों की सेवा के लिए उपयोग करता है ।
  • याहू application/x-javascriptअपने जेएस की सेवा के लिए उपयोग करता है।
  • याहू application/x-javascriptअपने होम पेज पर दिए गए जावास्क्रिप्ट के लिए उपयोग करता है ।

4
मजेदार। आप अपने उदाहरणों में एक तीसरा विकल्प देते हैं ... और टिम के अनुसार, दोनों बड़े खिलाड़ी गलत हैं (मानकों के संबंध में), जिसका मतलब है कि केवल ब्राउज़र सहिष्णु हैं (यहां कोई बड़ी खबर नहीं) और यह कोई बात नहीं हो सकती है।
फीलोहो

जवाबों:


115
  • text/javascript अप्रचलित है
  • application/x-javascript प्रयोग करने का निर्णय लेते समय प्रयोगात्मक था ...
  • application/javascript जेएस के लिए वर्तमान आधिकारिक MIME प्रकार है

उस ने कहा, ब्राउज़र अक्सर content-typeसर्वर द्वारा भेजे गए को अनदेखा करते हैं और typeविशेषता पर बहुत ध्यान देते हैं (और कुछ अभी तक नहीं पहचान सकते हैं application/javascript)।

मेरी सिफारिश:

  • सर्वर पर एप्लिकेशन / जावास्क्रिप्ट का उपयोग करें
  • HTML 5 का उपयोग करें और typeस्क्रिप्ट तत्वों से विशेषता को छोड़ें

NB: HTML विनिर्देश MIME मानक का खंडन करता है , और इसे वापस बदलने का प्रयास होता है text/javascriptताकि भविष्य में इसमें बदलाव हो सके।


3
कुछ महीने पहले का यह सवाल सटीक विपरीत कहता है। किसी से गलती हुई है :) "केली का अधिकार, ब्राउज़र स्क्रिप्ट टैग के प्रकार विशेषता पर भेजे गए हेडर के साथ भेजे गए MIME प्रकार पर भरोसा करते हैं" stackoverflow.com/questions/189850/…
Marco

6
अरे नहीं! बड़ा, अखंड, धीमा संगठन सही होना चाहिए! युक्ति गलत होनी चाहिए! Narghh। मैं बड़ी कंपनियों (धीमी) कंपनियों पर विनिर्देश और अपने स्वयं के अनुभव पर भरोसा करना जारी रखूंगा, भले ही उनमें से एक मुझे रोजगार देता था।
क्वेंटिन

1
हम्म, कोई W3C को यह बताना भूल गया कि टेक्स्ट / जावास्क्रिप्ट अप्रचलित है। यह HTML 5 में डिफ़ॉल्ट प्रतीत होता है । :: सिर खुजलाता है :: यह भी लगता है (यदि इस खंड का मेरा सरसरी तौर पर पढ़ना सही है) कि उपयोगकर्ता एजेंटों को केवल विशेषता पर जाना चाहिए , इस प्रकार यह अनदेखी करना सही व्यवहार होगा। typeContent-type
big_m

1
@big_m - ऐसा इसलिए है क्योंकि बहुत सारे ब्राउज़र इस बात को नहीं पहचानते application/javascriptकि यह स्क्रिप्ट को अनदेखा कर देगा। उपयोगकर्ता एजेंट सामग्री-प्रकार को अनदेखा करने वाले नहीं हैं। प्रकार विशेषता उन्हें बताती है कि क्या उम्मीद की जानी चाहिए। यदि वे इसका समर्थन नहीं करते हैं, तो उन्हें इसका अनुरोध करने की जहमत नहीं उठानी चाहिए। यदि सर्वर कहता है कि यह कुछ अलग है, तो उन्हें उस पर जाना चाहिए, तब HTML क्या कहता है (कम से कम HTTP के अनुसार, आप एक अलग युक्ति को देख रहे होंगे, आपने कोई लिंक नहीं दिया था)।
क्वेंटिन

1
@ क्वेंटिन, मैं scriptतत्व पर HTML 5 अनुभाग का उल्लेख कर रहा था , जिसे मैंने लिंक किया था। उस खंड का मेरा पढ़ा हुआ वर्णन आपके वर्णन से भिन्न है; यह typeविशेषता पर बहुत अधिक महत्व देता है और Content-Typeचरित्र एन्कोडिंग का निर्धारण करने के अलावा जाँच का कोई उल्लेख नहीं करता है । मैं मानता हूं कि ऐसा लगता है कि उपयोगकर्ता एजेंट के लिए यह सत्यापित करना बुद्धिमानी होगी कि सामग्री-प्रकार का मिलान अपेक्षित है, लेकिन मुझे उस एचटीएमएल युक्ति में कुछ नहीं मिला है जिसकी आवश्यकता है या जो ऐसा करने की अनुशंसा करती है।
big_m


7

यदि आप अपने पृष्ठों में js के लिए एप्लिकेशन / जावास्क्रिप्ट का उपयोग करना चुनते हैं, तो IE7 और IE8 आपकी स्क्रिप्ट नहीं चलाएंगे! Microsoft को आप सभी को दोष दें, लेकिन यदि आप चाहते हैं कि अधिकांश लोग आपके पृष्ठों को चलाने के लिए टेक्स्ट / जावास्क्रिप्ट का उपयोग करें।


3
जब आप कहते हैं कि "एप्लिकेशन / जावास्क्रिप्ट" काम नहीं करेगा, तो क्या इसका मतलब यह है कि यह HTTP प्रतिक्रिया पर सामग्री प्रकार के रूप में या स्क्रिप्ट टैग के "प्रकार" विशेषता के रूप में सेट है? मूल प्रश्न HTTP प्रतिक्रियाओं पर सामग्री प्रकार पर था। अन्य उत्तरों के आधार पर ऐसा लगता है कि स्क्रिप्ट टैग पर "प्रकार" विशेषता का केवल मान ही IE में कोई अंतर लाएगा।
जेसी हैलट

7

यह हुआ करता था language="javacript"। फिर यह बदल गया type="text/javascript"। अब यह है type="application/javacript"। ठीक है यह गूंगा हो रहा है। कुछ पुराने ब्राउज़र नए को नहीं पहचानते application/javascript, लेकिन फिर भी पुराने को पहचानते हैं text/javascript। मैं इस का उपयोग जारी रखने की योजना है, वरना मैं के प्रत्येक उदाहरण बदलने का प्रयास कर अपने समय के घंटे बर्बाद करेंगे text/javascriptमें application/javascript
अब किसी दिन विपरीत सच हो सकता है। किसी दिन नवीनतम ब्राउज़र पुरानी तकनीक को अस्वीकार कर सकते हैं ताकि सख्ती से मानक अनुपालन किया जा सके।
लेकिन जब तक मेरी वेबसाइट देखने वाले लोग यह शिकायत करने लगते हैं कि "जब से मेरे ब्राउज़र को अपग्रेड किया गया है, आपकी वेबसाइट का लगभग 50% गायब हो गया है", मेरा वेबसाइट में कोड बदलने का कोई मकसद नहीं है।


7

यहां इस सवाल का 2020 का जवाब है।

text/javascriptHTML मानक के अनुसार सही JavaScript MIME प्रकार है , जो बताता है:

सर्वर को text/javascriptजावास्क्रिप्ट संसाधनों के लिए उपयोग करना चाहिए । सर्वर को जावास्क्रिप्ट संसाधनों के लिए अन्य जावास्क्रिप्ट MIME प्रकारों का उपयोग नहीं करना चाहिए, और गैर-जावास्क्रिप्ट MIME प्रकारों का उपयोग नहीं करना चाहिए।

और यह भी :

[...] इस विनिर्देशन में जावास्क्रिप्ट को संदर्भित करने के लिए उपयोग किया जाने वाला MIME प्रकार है text/javascript, क्योंकि यह RFC 4329 के अनुसार आधिकारिक तौर पर आज्ञाकारी प्रकार होने के बावजूद सबसे अधिक उपयोग किया जाने वाला प्रकार है।

IFCF स्तर पर एक RFC में इस वास्तविकता को प्रतिबिंबित करने के लिए काम चल रहा है: https://datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/

कोई भी दावा जो " text/javascriptअप्रचलित है" वह RFC 4329 पर आधारित कह रहा है, जिसे HTML मानक और उपरोक्त IETF ड्राफ्ट (यानी आगामी RFC) दोनों स्पष्ट रूप से सही कर रहे हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.