স্ক্রিপ্ট ট্যাগের মধ্যে এইচটিএমএল মন্তব্যগুলি কি সেরা অনুশীলন? [বন্ধ]


97

আমাকে যে কাজটি করতে হবে তা ইনলাইন জাভাস্ক্রিপ্টে নিম্নলিখিত অনুশীলনটি মোটামুটি সাধারণ:

<script type="text/javascript">
   <!--
       // Code goes here
   //-->
</script>

আমি জানি যে মুখ্যটি জাভাস্ক্রিপ্টের সাথে সঙ্গতিপূর্ণ ব্রাউজারগুলিকে উত্স রেন্ডারিং থেকে বিরত রাখতে পারে তবে আজও কি এটি একটি সেরা অনুশীলন? বর্তমানে ব্যবহৃত ব্রাউজারগুলির সিংহভাগ জাভাস্ক্রিপ্ট ব্যাখ্যা করতে পারে; এমনকি আধুনিক মোবাইল ডিভাইসগুলিতেও সাধারণত সমস্যা হয় না।

'কেন নয়?' প্রশ্ন: আমাকে সম্প্রতি কোনও ইস্যুটি ডিবাগ করতে বেশ কয়েক ঘন্টা ব্যয় করতে হয়েছিল যেখানে কোনও পৃষ্ঠার গভীরে একটি স্ক্রিপ্ট ট্যাগের শেষে কেউ '->' এর সামনে '//' রেখেছিল এবং এটি রহস্যজনক জাভাস্ক্রিপ্টের কারণ হয়ে দাঁড়িয়েছিল ত্রুটি

আপনি কি করেন? এটি এখনও একটি 'সেরা অনুশীলন' হিসাবে বিবেচনা করা হয়?


উত্তর:


118

গুরুত্বপূর্ণ বিষয় হ'ল আজকাল, কোনও নির্দিষ্ট ব্রাউজার জাভাস্ক্রিপ্ট সমর্থন করে কিনা তা অপ্রাসঙ্গিক (স্পষ্টতই বৃহত্তর সংখ্যাগরিষ্ঠ) - এটি অপ্রাসঙ্গিক কারণ প্রায় সকলেই স্ক্রিপ্ট ব্লক বোঝে, যার অর্থ তারা জাভাস্ক্রিপ্ট উপেক্ষা করতে জানে এমনকি তারা না পারলেও এটি ব্যাখ্যা।

স্ক্রিপ্ট ব্লকগুলির মধ্যে কেন বিশেষত এইচটিএমএল মন্তব্যগুলি ব্যবহার করবেন না তার জন্য ম্যাট ক্রুজ তার জাভাস্ক্রিপ্ট টুলবক্স সাইটে কিছুটা আরও বিশদ ব্যাখ্যা দিয়েছেন ।

এই পৃষ্ঠা থেকে উদ্ধৃত:


স্ক্রিপ্ট ব্লকে HTML মন্তব্য ব্যবহার করবেন না

জাভাস্ক্রিপ্টের প্রাচীন দিনগুলিতে (1995), নেটস্কেপ ০.০ এর মতো কিছু ব্রাউজারের স্ক্রিপ্ট ট্যাগ সম্পর্কিত কোনও সমর্থন বা জ্ঞান ছিল না। সুতরাং যখন জাভাস্ক্রিপ্টটি প্রথম প্রকাশিত হয়েছিল, তখন পুরানো ব্রাউজারগুলি থেকে কোডটি লুকানোর জন্য একটি কৌশল প্রয়োজন ছিল যাতে তারা পৃষ্ঠায় এটি পাঠ্য হিসাবে না দেখায়। 'হ্যাক' কোডটি লুকানোর জন্য স্ক্রিপ্ট ব্লকের মধ্যে এইচটিএমএল মন্তব্যগুলি ব্যবহার করা হয়েছিল।

স্ক্রিপ্টে এইচটিএমএল মন্তব্য ব্যবহার করা খারাপ

// DON'T do this! Code is just representative on how things were done
<script language="javascript">
<!--
   // code here
//-->
</script>

আজ সাধারণ ব্যবহারে কোনও ব্রাউজার <script> ট্যাগ সম্পর্কে অজ্ঞ নয়, তাই জাভাস্ক্রিপ্ট উত্সটি গোপন করার প্রয়োজন নেই। আসলে, এটি নিম্নলিখিত কারণে ক্ষতিকারক হিসাবে বিবেচনা করা যেতে পারে:

  • এক্সএইচটিএমএল নথিগুলির মধ্যে, উত্সটি আসলে সমস্ত ব্রাউজার থেকে গোপন করা হবে এবং অকেজো রেন্ডার করা হবে
  • - এইচটিএমএল মন্তব্যের মধ্যে অনুমোদিত নয়, সুতরাং স্ক্রিপ্টে কোনও হ্রাস ক্রিয়াকলাপ অবৈধ

4
+1 আমি জানতাম যে আমার কম্পিউটার.জ্যাভাস্ক্রিপ্টের দিনগুলি থেকে এই বিষয় সম্পর্কে প্রচুর তথ্য আছে এমন একজন ছিলাম, যখন আপনার উত্তরটি প্রকাশিত হয়েছিল, তখন আমি ম্যাটকে উদ্ধৃত করে নিউজ গ্রুপের সংরক্ষণাগারগুলিতে বসে থাকি।
গ্র্যান্ট ওয়াগনার

4
এক্সএইচটিএমএলে, আপনি এইচটিএমএল মন্তব্যের পরিবর্তে একটি সিডিএটিএ ব্যবহার করতে পারেন: <স্ক্রিপ্ট ...> // <! [সিডিএটিএ [... //]]> </script>
কংক্রিট গ্যানেট

আমার যুক্ত করা উচিত যে এই 'হ্যাক' ইন্টারনেট এক্সপ্লোরার 9 এ একটি ত্রুটি তৈরি করে (একটি ক্লায়েন্ট কোনও পৃষ্ঠা সম্পর্কে অভিযোগ করেছিলেন যা সঠিকভাবে কাজ করছে না এবং এটিই কারণ ছিল)
লর্ডস্কেলস

24

আমি এটা করা বন্ধ করে দিয়েছি। কিছু সময়ে আপনাকে কেবল আপনার এনসিএসএ মোজাইক ছাড়তে হবে।


7
অন্য কথায়, ওপি কেন এটি করা বন্ধ করবে সে সম্পর্কে কোনও সরবরাহিত কারণ নেই । আপনি পরামর্শ দিচ্ছেন যে সে এটি করা বন্ধ করে দেবে কারণ আপনি করেছেন, যা উত্তর আইএমও হওয়ার পক্ষে যথেষ্ট কারণ নয়।
লরেন্স আইলো

4
@ লাওরেন্সএইলো: "সেরা অনুশীলন" শব্দটি সম্পর্কে কী আপনাকে "মতামত" নয় বরং "তথ্য" সম্পর্কে ভাবনা তৈরি করে?
বিশৃঙ্খলা

4
এর মধ্যে এই পুরো পোস্টের চূড়ান্ত দোষ রয়েছে। এটি বন্ধ করা উচিত ছিল কারণ এটি একটি আলোচনার প্রশ্ন।
লরেন্স আইলো

4
সম্ভবত এটি যখন ছয় বছর আগে পোস্ট করা হয়েছিল এটি একটি উত্তর হিসাবে যোগ্যতা অর্জন করেছিল, তবে সাইটের মান অনুযায়ী আজ তা হয় না।
j08691

4
এই উত্তরটি মেটা এসও
কিউবজকি

10

অনুযায়ী W3C পরামর্শ এটি প্রধানত User Agents থেকে স্ক্রিপ্ট ডেটা লুকানোর দরকারী ছিল।

ডাব্লু 3 সি পৃষ্ঠা থেকে উদ্ধৃত :

জাভাস্ক্রিপ্টে স্ক্রিপ্টগুলি মন্তব্য করার জন্য জাভাস্ক্রিপ্ট ইঞ্জিন একটি স্ক্রিপ্ট "<!--"উপাদানটির শুরুতে স্ট্রিংটি ঘটতে দেয় এবং লাইনের শেষ অবধি পরবর্তী অক্ষরগুলিকে উপেক্ষা করে। জাভাস্ক্রিপ্ট বর্তমান লাইনের শেষ পর্যন্ত প্রসারিত একটি মন্তব্য হিসাবে "//" কে ব্যাখ্যা করে। জাভা স্ক্রিপ্ট পার্সার থেকে "->" স্ট্রিংটি আড়াল করার জন্য এটি প্রয়োজন।

    <SCRIPT type="text/javascript">
<!--  to hide script contents from old browsers
  function square(i) {
    document.write("The call passed ", i ," to the function.","<BR>")
    return i * i
  }
  document.write("The function returned ",square(5),".")
// end hiding contents from old browsers  -->
</SCRIPT>

4
যদি HTML 4.x ব্যবহার করা হয় x এটি এক্সএইচটিএমএল সহ বেশ আলাদা গল্প।
কোয়ান্টিন

8

না, এটি স্ক্রিপ্ট উপাদানটি প্রথম চালু করার সময় ব্যবহৃত কাজের থেকে হ্যাংওভার। কোনও ব্রাউজার আজ স্ক্রিপ্ট উপাদানটি বুঝতে ব্যর্থ হয় না (এমনকি যদি এটি "স্ক্রিপ্ট হিসাবে উপেক্ষা করা উচিত কারণ স্ক্রিপ্টিং বন্ধ বা অসমর্থিত")।

এক্সএইচটিএমএলে এগুলি সক্রিয়ভাবে ক্ষতিকারক।

আমি এর ইতিহাস সম্পর্কে কিছুক্ষণ আগে লিখেছিলাম ।


3

কিছুক্ষণ আগে এটি ব্যবহার বন্ধ হয়ে গেছে। এছাড়াও, ডগলাস ক্রকফোর্ড অনুসারে , আপনি আপনার স্ক্রিপ্ট ট্যাগগুলি থেকে টাইপ বৈশিষ্ট্যটি বাদ দিতে পারেন কারণ বেশিরভাগ ব্রাউজারে কেবলমাত্র স্ক্রিপ্টিং ভাষা জাভাস্ক্রিপ্ট উপলব্ধ।


4
বেশিরভাগ ব্রাউজারগুলি এখনও কাজ করবে, এটি যদিও এইচটিএমএল স্পেসিফিকেশন লঙ্ঘন করে, তাই আমি এটি পরামর্শ দেব না।
কোয়ান্টিন

4
আপনি কখনই জানেন না আইই কখন ডিবিএল ডিফল্ট হিসাবে ভিবি স্ক্রিপ্ট নেবে ..
ফ্রান্সিস

1

আপনি যদি ম্যানুয়ালি টাইপ করে থাকেন তবে আমি আপনাকে সর্বদা বাহ্যিক জেএস ফাইলগুলি ব্যবহার করার পরামর্শ দিচ্ছি, এটি এতটা সহায়তা করবে।

আপনার উদ্বেগ সম্পর্কিত: বেশিরভাগ ব্রাউজারগুলি আজ জাভাস্ক্রিপ্ট নিরাপদ। তবে কখনও কখনও লোকেরা সরাসরি এইচটিএমএল আনার জন্য সাধারণ পার্সার লিখতে পারে - এবং আমার অবশ্যই বলতে হবে, নিরাপদ উদ্ধৃতি সেই ক্লায়েন্টদের জন্য সত্যই সহায়ক। এছাড়াও পুরানো লিংক্সের মতো কিছু নন-জেএস ক্লায়েন্ট এ থেকে সুবিধা পাবেন।


1

আপনি যদি স্ক্রিপ্ট ট্যাগগুলির মধ্যে আক্ষরিক পাঠ্যকে অন্তর্ভুক্ত না করেন - এটি হ'ল যদি আপনি এসসিআর ফাইলগুলি থেকে স্ক্রিপ্টগুলি লোড করেন তবে আপনি মন্তব্যগুলি ভুলে যেতে পারেন।



0

আমি যুগে যুগে এটি করা বন্ধ করে দিয়েছি। এই দিন এবং যুগে আপনার সত্যই দরকার নেই।


@ ইয়ভেট আমার উত্তর পোস্ট করার ছয় বছর পরে এই মন্তব্যটি পোস্ট করার জন্য আপনার অনুপ্রেরণা কী?
জন টপলি

@ ইয়ভেট কোনও অপরাধ নেওয়া হয়নি, আমি কেবল কৌতূহলী ছিলাম। এবং অবশ্যই আপনি ঠিক আছেন; আজকাল আমি এটি একটি মন্তব্য হিসাবে পোস্ট করা হবে।
জন টপলি

-1

আমি এটি করি না তবে অন্য দিন আমি w3c তে আমার পাসওয়ার্ড সুরক্ষিত সাইটটি যাচাই করতে গিয়েছিলাম। সুতরাং আমাকে তাদের সরাসরি ইনপুট পদ্ধতিটি ব্যবহার করতে হয়েছিল। এটি আমার জাভাস্ক্রিপ্ট সম্পর্কে অভিযোগ করেছে, তাই আমি মন্তব্যগুলিকে সবকিছুতে ফিরিয়ে দিয়েছি ঠিক ছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.