आवेदन / एक्स-जावास्क्रिप्ट और पाठ / जावास्क्रिप्ट सामग्री प्रकार के बीच अंतर


245

इन हेडर में क्या अंतर है?

Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript

कौन सा सबसे अच्छा है और क्यों?

कृपया यह न कहें कि वे समान हैं - यदि वे समान होते तो उनमें से तीन नहीं होते। मैं दोनों काम जानता हूं - लेकिन मैं अंतर जानना चाहूंगा।


1
अंतर भी एक क्लासिक कारण है कि आपकी स्क्रिप्ट को संकुचित क्यों नहीं किया जा रहा है। सुनिश्चित करें कि आपके पास सेवारत वास्तविक प्रकार के लिए httpCompression में एक प्रविष्टि है और ध्यान दें कि IIS एक्सप्रेस केवल आवेदन / x-जावास्क्रिप्ट और पाठ / * को डिफ़ॉल्ट रूप से संपीड़ित करता है।
प्रिज्म

NB: "जावास्क्रिप्ट माइम प्रकार" की एक पूरी सूची यहां पाई जा सकती है: html.spec.whatwg.org/multipage/… । यानी यह उन मानों की सूची है, जो किसी ब्राउज़र को निर्देश निर्दिष्ट होने पर scriptटैग की typeविशेषता के लिए अनुमति देनी चाहिए nosniffdeveloper.mozilla.org/en-US/docs/Web/HTTP/Headers/…
JohnLBevan

जवाबों:


320

text/javascriptअप्रचलित है, और एक संक्रमणकालीन अवधि के लिए application/x-javascriptप्रयोगात्मक (इसलिए x-उपसर्ग) था जब तक application/javascriptकि इसे मानकीकृत नहीं किया जा सकता है।

आपको उपयोग करना चाहिए application/javascriptयह RFC में प्रलेखित है ।

जहां तक ​​एक ब्राउज़र का संबंध है, कोई अंतर नहीं है (कम से कम HTTP हेडर में)। यह सिर्फ एक परिवर्तन किया गया है, ताकि text/*और application/*MIME प्रकार समूहों के लिए एक सुसंगत अर्थ जहां संभव था। ( text/*MIME प्रकार मानव पठनीय सामग्री के लिए अभिप्रेत हैं, जावास्क्रिप्ट को मनुष्यों को सीधे अर्थ देने के लिए नहीं बनाया गया है)।

ध्यान दें कि स्क्रिप्ट तत्व application/javascriptकी typeविशेषता का उपयोग करने से कुछ पुराने ब्राउज़रों में स्क्रिप्ट को अनदेखा किया जाएगा (अज्ञात भाषा में होने के कारण)। या तो text/javascriptवहाँ का उपयोग करना जारी रखें या पूरी तरह से विशेषता को छोड़ दें (जो HTML 5 में अनुमति है)।

यह ब्राउज़रों के रूप में HTTP हेडर में एक समस्या नहीं है क्योंकि सार्वभौमिक रूप से (जहाँ तक मैं जानता हूँ) या तो पूरी तरह से HTTP सामग्री-प्रकार की लिपियों को अनदेखा करते हैं, या पहचानने के लिए पर्याप्त आधुनिक हैं application/javascript


विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद। एक और मुद्दा - आपने कहा है कि मैं इसे पूरी तरह से (केवल HTML5?) को छोड़ सकता हूं - लेकिन मेरा सवाल (जिसे बाद में किसी ने संपादित किया था) विशेष रूप से PHP में JS के बारे में था - क्या यह सभी सर्वरों / ब्राउज़रों पर PHP / JS कॉम्बो के रूप में काम करेगा अगर मैं इसे पूरी तरह से छोड़ दूंगा ??
ओमेरक क्रोनेन

8
आप एक तत्व पर type विशेषता को छोड़ सकते हैं <script>। आप Content-TypeHTTP शीर्ष लेख को कभी भी छोड़ नहीं सकते ... (यदि आप इसे PHP में निर्दिष्ट नहीं करते हैं तो PHP डिफ़ॉल्ट रूप से text/htmlगलत होगा)।
क्वेंटिन

2
मानव-पठनीय तर्क के बाद, क्या सीएसएस को आवेदन के साथ-साथ पाठ के बजाय वर्गीकृत नहीं किया जाना चाहिए?
फेब्रीसियो मैटे

2
@ इस उत्तर के लिए आपके संपादन को इच्छित अर्थ में बदल दिया गया (जो यह बताना था कि text/javascriptअप्रचलित है और application/x-javascriptप्रयोगात्मक था)। इससे भी बुरी बात यह है कि इसने उत्तर की शुरुआत को text/javascriptबिना किसी स्पष्ट कारण के शीर्ष पर अप्रासंगिक रूप से लटकाते हुए एक ब्लॉक के साथ उत्तर की शुरुआत को छोड़ दिया ।
मार्क एमी

1
एसवीएन में, निश्चित रूप से पाठ / जावास्क्रिप्ट का उपयोग करें। SVN पाठ के साथ / बाइनरी के रूप में शुरू न होने वाली किसी भी चीज़ का व्यवहार करता है। अपनी संपूर्ण SVN वर्किंग कॉपी को ठीक करने के लिए, आपको एक mime.cmd फ़ाइल बनानी @echo off for /r . %%X in (*.js) do ( svn propset svn:mime-type text/javascript "%%X" ) होगी, जिसमें निम्नलिखित होंगे: जिसे निष्पादित करने पर, आपकी JSos फ़ाइलों के सभी प्रकार के माइम प्रकार को टेक्स्ट / जावास्क्रिप्ट में बदल दिया जाएगा। फिर आपको नए माइम प्रकार के साथ एसवीएन को जेएस फाइल करना होगा।
मार्क एल्ड्रिज

21

माइम-प्रकार के साथ शुरू x-मानकीकृत नहीं हैं। जावास्क्रिप्ट के मामले में यह एक तरह से पुराना है। दूसरा कोड स्निपेट अतिरिक्त

<?Header('Content-Type: text/javascript');?>

short_open_tagsसक्षम करने की आवश्यकता है। आपको इससे बचना चाहिए।

<?php Header('Content-Type: text/javascript');?>

हालांकि, जावास्क्रिप्ट के लिए पूरी तरह से सही माइम-प्रकार है

application/javascript

http://www.iana.org/assignments/media-types/application/index.html


1
पुराना उत्तर, लेकिन यह नहीं जानते कि क्या यह छोटे खुले टैग के साथ शुरू करना अच्छा है जब तक कि यह सबसे अच्छा अभ्यास न हो (हम आपको वास्तव में PHP-SOT को निष्क्रिय करने की
सलाह देते हैं

8

RFC 4329 के अनुसार जावास्क्रिप्ट के लिए सही MIME प्रकार होना चाहिए application/javascript। होवर, पुराने IE संस्करण इस पर चोक करते हैं क्योंकि वे उम्मीद करते हैं text/javascript


7
जहाँ तक मुझे पता है, IE एक बंदर का नहीं देता है जो HTTP सामग्री प्रकार कहता है; केवल HTML typeविशेषता क्या कहती है (और HTML 5 ड्राफ्ट जो विशेषता जावास्क्रिप्ट के लिए छोड़ा जा सकता है)।
क्वेंटिन

@ क्वेंटिन आह ... यही मुझे परेशानी दे रहा था। धन्यवाद!
मार्टिन

3

प्रकार का उपयोग करें = "आवेदन / जावास्क्रिप्ट"

HTML5 के मामले में, प्रकार विशेषता अप्रचलित है, आप इसे हटा सकते हैं। नोट: कि यह w3.org के अनुसार "टेक्स्ट / जावास्क्रिप्ट" के लिए डिफॉल्ट करता है, इसलिए मैं इसे हटाने के बजाय "एप्लिकेशन / जावास्क्रिप्ट" को जोड़ने का सुझाव दूंगा।

http://www.w3.org/TR/html5/scripting-1.html#attr-script-type
प्रकार विशेषता डेटा की स्क्रिप्ट या प्रारूप की भाषा देती है। यदि विशेषता मौजूद है, तो इसका मान एक मान्य MIME प्रकार होना चाहिए। चारसेट पैरामीटर निर्दिष्ट नहीं किया जाना चाहिए। डिफ़ॉल्ट, जिसका उपयोग यदि विशेषता अनुपस्थित है, "पाठ / जावास्क्रिप्ट" है।

"एप्लिकेशन / जावास्क्रिप्ट" का उपयोग करें, क्योंकि "टेक्स्ट / जावास्क्रिप्ट" अप्रचलित है :

RFC 4329: http://www.rfc-editor.org/rfc/rfc4329.txt

  1. तैनात स्क्रिप्टिंग मीडिया प्रकार और संगतता

    ECMAScript और JavaScript में लिखे गए प्रोग्राम को लेबल और एक्सचेंज करने के लिए विभिन्न अपंजीकृत मीडिया प्रकारों का उपयोग तदर्थ फैशन में किया गया है। इसमें शामिल है:

    + ------------------------------------------------- ---- + | पाठ / जावास्क्रिप्ट | पाठ / पारिस्थितिकीय | | पाठ / जावास्क्रिप्ट 1.0 | पाठ / जावास्क्रिप्ट 1.1 | | पाठ / जावास्क्रिप्ट 1.2 | पाठ / जावास्क्रिप्ट 1.3 | | पाठ / जावास्क्रिप्ट 1.4 | पाठ / जावास्क्रिप्ट 1.5 | | पाठ / jscript | पाठ / जीवन रेखा | | पाठ / एक्स-जावास्क्रिप्ट | पाठ / एक्स-एक्मास्क्रिप्ट | | आवेदन / एक्स-जावास्क्रिप्ट | आवेदन / एक्स-एक्जामस्क्रिप्ट | | आवेदन / जावास्क्रिप्ट | आवेदन / पारिस्थितिकीय | + ------------------------------------------------- ---- +

इस तरह की सामग्री के लिए "पाठ" शीर्ष-स्तरीय प्रकार का उपयोग समस्याग्रस्त होने के लिए जाना जाता है। यह दस्तावेज़ इस प्रकार टेक्स्ट / जावास्क्रिप्ट और टेक्स्ट /
इस्मास्क्रिप्ट को परिभाषित करता है लेकिन उन्हें "अप्रचलित" के रूप में चिह्नित करता है।
ऊपर के भाग के रूप में सूचीबद्ध प्रायोगिक और अपंजीकृत मीडिया प्रकारों का उपयोग हतोत्साहित किया जाता है।
मीडिया प्रकार,

  * application/javascript
  * application/ecmascript

जो इस दस्तावेज़ में भी परिभाषित किए गए हैं, आम उपयोग के लिए अभिप्रेत हैं और इसका उपयोग किया जाना चाहिए।

यह दस्तावेज़
पाठ / जावास्क्रिप्ट, टेक्स्ट / इस्मैस्क्रिप्ट, और एप्लिकेशन / जावास्क्रिप्ट के लिए समान प्रसंस्करण आवश्यकताओं को परिभाषित करता है ।
मीडिया प्रकार के अनुप्रयोग के लिए उपयोग और समर्थन / इस्माकस्क्रिप्ट इस दस्तावेज़
में परिभाषित अन्य मीडिया प्रकारों की तुलना में काफी कम व्यापक है
। अपने लाभ के लिए इसका उपयोग करते हुए, यह दस्तावेज़
इस प्रकार के लिए सख्त प्रसंस्करण नियमों को परिभाषित करता है जो अधिक अंतर
प्रसंस्करण को बढ़ावा देता है ।

एक्स-जावास्क्रिप्ट प्रयोगात्मक है, इसका उपयोग न करें।

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