কখন জাভাস্ক্রিপ্ট MIME টাইপ অ্যাপ্লিকেশন / জাভাস্ক্রিপ্ট টেক্সট / জাভাস্ক্রিপ্টের পরিবর্তে ব্যবহার করবেন?


157

প্রশ্নে jQuery কোড আইই তে কাজ করছে না , text/javascriptHTML ডকুমেন্টে ব্যবহৃত হয় যাতে ইন্টারনেট এক্সপ্লোরার এটি বুঝতে পারে।

তবে আমি ভাবছি, আপনি কখন ব্যবহার করবেন application/javascriptএবং আরও গুরুত্বপূর্ণ আপনি কেন এটি ব্যবহার করবেন text/javascript?


সম্ভাব্য ডুপ / ব্যাখ্যা: স্ট্যাকওভারফ্লো.
বেন



উত্তর:


243

তত্ত্বত্বে , আরএফসি 4329 অনুসারে application/javascript,।

যে কারণটি বলে মনে করা applicationহচ্ছে এটি টাইপটি পাঠযোগ্য বা কার্যকরযোগ্য কিনা তা নিয়ে কিছুই করার নেই। এটি কেবলমাত্র জেনেরিক charsetপ্যারামিটারের পরিবর্তে ভাষা / টাইপ অনুসারে কাস্টম চরসেট-সংকল্প পদ্ধতি রয়েছে । এর একটি সাব textটাইপ প্রক্সির মাধ্যমে অন্য একটি চরসেটে ট্রান্সকোড করতে সক্ষম হওয়া উচিত, চারসেট প্যারামিটারটি পরিবর্তন করে। এটি জাভাস্ক্রিপ্টের ক্ষেত্রে সত্য নয় কারণ:

ক। আরএফসি বলেছে যে প্রকার নির্ধারণের জন্য ব্যবহারকারী-এজেন্টদের স্ক্রিপ্টে বিওএম-স্নিফিং করা উচিত (কোন ব্রাউজার আসলে এটি করছিল কিনা তা আমি নিশ্চিত নই);

খ। চরসেট নির্ধারণের জন্য ব্রাউজারগুলি অন্যান্য তথ্য ব্যবহার করে - পৃষ্ঠার এনকোডিং সহ এবং কয়েকটি ব্রাউজারে script charsetবৈশিষ্ট্য। সুতরাং যে কোনও প্রক্সি যা সংস্থানটি ট্রান্সকোড করার চেষ্টা করেছিল তা তার ব্যবহারকারীদের ভেঙে দেবে। (অবশ্যই বাস্তবে কেউ আর কখনও ট্রান্সকোডিং প্রক্সি ব্যবহার করে না, তবে এটি ছিল অভিপ্রায়))

অতএব ফাইলের সঠিক বাইট সংরক্ষিত করা আবশ্যক ঠিক , যা এটি একটি বাইনারি তোলে applicationটাইপ এবং টেকনিক্যালি চরিত্র ভিত্তিক text

একই কারণে, application/xmlসরকারীভাবে অধিকতর পছন্দ text/xml: এক্সএমএল এর নিজস্ব ইন-ব্যান্ড চারসেট সংকেত প্রক্রিয়া রয়েছে mechan এবং applicationএক্সএমএল এর জন্যও সবাই উপেক্ষা করে ।

text/javascriptএবং text/xmlএটি অফিশিয়াল রাইট থিং নাও হতে পারে, তবে সামঞ্জস্যতার কারণে প্রত্যেকে আজকে যা ব্যবহার করে এবং কেন তারা সঠিক জিনিস হয় না তার কারণগুলি কার্যত সম্পূর্ণ গুরুত্বহীন কথা বলে।


4
সর্বাধিক "সামঞ্জস্যতা" সমাধানটি কোনও প্রতিক্রিয়াতে কোনও সামগ্রী ধরণের অন্তর্ভুক্ত না করা। আরএফসি জানিয়েছে যে কোনও স্পষ্ট সামগ্রীর ধরণ ছাড়াই রিসিভার এটি "প্রসঙ্গ অনুসারে" ব্যাখ্যা করবে যা সর্বদা প্রথম ব্রাউজারগুলির মধ্যে থেকে সমস্ত ব্রাউজারের জন্য সঠিক আচরণ হয়
প্যাসেরিয়ার

সাথে সতর্কতা অবলম্বন করুন application/javascriptএবং IE এর সাথে সামঞ্জস্যতা মোডে চলছে IE=8। দেখে মনে হচ্ছে যেন ইনলাইন স্ক্রিপ্টগুলি সঠিকভাবে মূল্যায়ন হয় না। text/javascriptসেখানে ঠিক কাজ করে।
জোসচা

2
@ পেসারিয়র - আমি জানি এই মন্তব্যটি 5 বছরের পুরনো, তবে সুরক্ষার কারণে মাইম প্রকারগুলি বিশেষত ফোরামের ধরণের ওয়েবসাইটগুলিতে অন্তর্ভুক্ত করা প্রায়শই ভাল। রিসিভারটি ধরণের ব্যাখ্যা দেওয়ার ফলে কোনও চিত্র হিসাবে কোনও দূষিত জাভাস্ক্রিপ্ট ফাইল আপলোড করে আক্রমণটির জন্য উন্মুক্ত ছেড়ে দেয় এবং তারপরে ব্রাউজারটি সেই স্ক্রিপ্টটির ব্যাখ্যা ও চালনা করে। সমস্ত প্রতিক্রিয়াগুলির জন্য সার্ভারটি মাইম প্রকারগুলি ফিরিয়ে দেওয়া এবং X-Content-Type-Options: nosniffব্রাউজারটিকে ধরণের ব্যাখ্যা থেকে আটকাতে হেডার ব্যবহার করা ভাল ।
সামি_উইন্টার

@ সামি_উইনটার আমি সর্বত্র এই জাতীয় সতর্কতাগুলি দেখতে পাচ্ছি এবং প্রতিবারই ক্রিঞ্জ করব। আমি যদি ব্যবহারকারীদের সামগ্রী আপলোড করার অনুমতি দিয়ে থাকি তবে আমি সম্ভবত "ওহ হ্যাঁ, পিএনজি ফাইলের সাথে মিলে যাওয়া রেজেক্সের নামের চেয়েও বেশি বৈধতা দেব, আমি বিশ্বাস করতে পারি", তাই না? যদি ভুল শিরোনাম একটি "সুরক্ষা সমস্যা" হয়ে যায়, সমস্যাটি সম্ভবত আরও গভীরতর হতে পারে, আপনি কি ভাবেন না? এটি লুকানোর মতো Server: nginxবা এনগিনেক্স যা কিছু প্রেরণ করে তা একই । যেন আপনি যে গর্তটি সন্ধান করতে সক্ষম হন তার আপনি কী সার্ভারটি চালাচ্ছেন তা জানতে সুস্পষ্ট শিরোনাম প্রয়োজন ...
সহসাহে

17

জাভাস্ক্রিপ্টের MIME টাইপের সমস্যাটি হ'ল কয়েক বছর ধরে কোনও মান নেই standard এখন আমরা অফিসিয়াল এমআইএমএম টাইপ হিসাবে অ্যাপ্লিকেশন / জাভাস্ক্রিপ্ট পেয়েছি ।

তবে প্রকৃতপক্ষে, মাইম টাইপটি মোটেই কিছু যায় আসে না, কারণ ব্রাউজারটি টাইপটি নিজেই নির্ধারণ করতে পারে। এই কারণেই এইচটিএমএল 5 স্পেসগুলি জানিয়েছে যে এটির type="text/javascript"আর দরকার নেই।


5

applicationকারণ - .jsফাইলগুলি কোনও ব্যবহারকারী পড়তে চায় এমন কিছু নয় তবে এমন কিছু যা কার্যকর করা উচিত।


এটি সরকারী উত্তর তবে আইআই এটির উপরে চাপ দেয়।
বেন

20
@ বেন: সম্ভবত আইই ব্যবহারকারীদের সমস্ত জেএস ফাইলগুলি পড়তে হবে কারণ তারা সঠিকভাবে সম্পাদন করে না? কমপক্ষে, এটি মাইক্রোসফ্ট দ্বারা সত্য;)
21

আপনার মন্তব্য Love, কিন্তু দুর্ভাগ্যবশত যারা জাভাস্ক্রিপ্ট পড়তে পারে না এখনও ইন্টারনেট ব্যবহার তাই আমরা এটা দিয়ে মোকাবেলা করতে হবে :(।
মার্ক Baijens

1
আপনি পড়তে চান বা না চান না কেন এটির সাথে কিছু করার আছে বলে আমি মনে করি না। এটি কীভাবে ডেটা ট্রান্সকোড হয়ে যায় - বা বরং এটি হতে পারে কিনা তা করতে হবে।
জেনেক্সার

প্রযুক্তিগতভাবে, এইচটিএমএল এবং সিএসএসকে ভিজ্যুয়াল সামগ্রী হিসাবে কোডের ফলাফল উত্পাদন করতে ব্রাউজার দ্বারা "চালিত" (পার্সড) করা হয় এবং এটি ব্যবহারকারীকে "পড়তে" বোঝায় না, সুতরাং, এই উত্তরটি খুব একটা বোঝায় না। আমার অনুমান যে "পাঠ্য" কী এবং "প্রয়োগ" কী তা নিয়ে বড় ধরনের বিভ্রান্তি রয়েছে। আমি এই ব্যাপারে ভোট দিতে পারে তবে আমি বলতে চাই IETF হিসাবে "পাঠ্য" বিষয়বস্তু বিবেচনা করা উচিত text, এবং binaryপারেন যেমন application-অথবা "চিত্র" হিসেবে বলেন ধরনের "উদ্দেশ্য", বা "দলিল", ইত্যাদি

1

অ্যাপ্লিকেশন / জাভাস্ক্রিপ্টটি ব্যবহার করার জন্য সঠিক ধরণ তবে এটি আই 6-8 দ্বারা সমর্থিত নয় বলে আপনি পাঠ্য / জাভাস্ক্রিপ্টের সাথে আটকে যাচ্ছেন। আপনি যদি বৈধতার বিষয়ে চিন্তা করেন না (এইচটিএমএল 5 বাদে) তবে কেবল কোনও প্রকার নির্দিষ্ট করবেন না।


আপনি এটি কোথায় পেয়েছেন? আমি নিশ্চিত যে এটি সমর্থিত। বা, অন্তত, এটি উপেক্ষা করা হবে।
জেনেক্সার

@ জেনেক্সার তার অন্য একটি প্রশ্নের উত্তর পড়েছিলেন । আপাতদৃষ্টিতে IE সামঞ্জস্যের অর্থ হ'ল না application/javascript
ক্যামিলো মার্টিন

@ ক্যামিলোমার্টিন আমি সমস্ত সময় 6 এর সাথে আই এর সাথে এটি সূক্ষ্মভাবে ব্যবহার করি। তারা ঠিক জাভাস্ক্রিপ্ট ডিফল্ট।
জেনেক্সার

@ জেনেক্সার এইচএম, আজব। অন্যান্য প্রশ্নোত্তর সম্পর্কে সমস্যাটি কী তা আমি ভাবছি।
ক্যামিলো মার্টিন

@ জেনেক্সার এটির একটি সময় হয়ে গেছে যেহেতু আমাকে এটিকে মোকাবেলা করতে হয়েছিল তবে এখানে আইআই --৮ নিয়ে সমস্যা সৃষ্টি করার কয়েকটি অন্যান্য বিবরণ এখানে দেওয়া আছে । কেন এটি কেবল কিছু সময় মনে হয় তা সম্পূর্ণরূপে নিশ্চিত নয় তবে আমার অভিজ্ঞতায় এটি সমস্যার কারণ হয়ে দাঁড়িয়েছে।
রাদু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.