এইচটিএমএল বৈশিষ্ট্যগুলির দৈর্ঘ্যের কোনও সীমা আছে?


213

এইচটিএমএলে কোনও বৈশিষ্ট্যটির মান কত দীর্ঘ হয়?

আমি data-foo="bar"একটি নতুন অ্যাপ্লিকেশনটিতে এইচটিএমএল 5 স্টাইলের ডেটা অ্যাট্রিবিউটগুলি ( ) ব্যবহার করছি এবং এক জায়গায় এটি একটি ন্যায্য ছাঁটা ডেটা (100 অক্ষরের উপরে) সংরক্ষণ করা সত্যিই সহজ হবে। যদিও আমি সন্দেহ করি যে এই পরিমাণটি ঠিক আছে, এটি কতটা বেশি তা নিয়ে প্রশ্ন উত্থাপন করে?


1
তথ্যের জন্য, অন্য একটি বৈশিষ্ট্য খুব দীর্ঘ প্রত্যাশিত যা হ'ল iframe@srcdoc( MDN (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) - [এইচটিএমএল ২.২ যাতে একটি সম্পূর্ণ নথি থাকে ( শুনেছি আপনি দস্তাবেজগুলি পছন্দ করেছেন (… )
ফিলিপলস

উত্তর:


265

এইচটিএমএল 4

এইচটিএমএল 4 দৃষ্টিকোণ থেকে, বৈশিষ্ট্যগুলি একটি এসজিএমএল কনস্ট্রাক্ট। তাদের সীমাগুলি এইচটিএমএল 4 এর এসজিএমএল ঘোষণায় সংজ্ঞায়িত করা হয়েছে :

         পরিমাণ SGMLREF
                  এটিটিসিএনটি 60 - বৃদ্ধি পেয়েছে -
                  এটিএসপ্লেইন 65536 - এগুলি বৃহত্তম মান -
                  শিরোনাম 65536 - ঘোষণায় অনুমোদিত -
                  শুল্ক 65536 - প্রকৃত স্থির সীমা এড়ানো -
                  পাইল 65536 - এইচটিএমএল ইউএ এর বাস্তবায়ন -
                  ট্যাগএলভিএল 100
                  ট্যাগলেন 65536
                  GRPGTCNT 150
                  জিআরপিসিএনটি 64 64

এখানে প্রশ্নের মানটি হ'ল "এটিএসপ্লেলন" যা কোনও উপাদানের বৈশিষ্ট্য বিশিষ্টকরণ তালিকার সীমা (যা সেই উপাদানটির জন্য সমস্ত বৈশিষ্ট্যের মোট আকার হওয়া উচিত)। উপরের নোটটিতে উল্লেখ করা হয়েছে যে নির্দিষ্ট সীমাবদ্ধতাগুলি এড়ানো উচিত, তবে সম্ভবত এটি সম্ভবত বেশিরভাগ বাস্তবায়নে উপলভ্য মেমরি ছাড়া অন্য কোনও আসল সীমা নেই।

এইচটিএমএল 5

এইচটিএমএল 5 আলাদা বলে মনে হচ্ছে, যেমনটি অনুমানটি বলেছে, "এইচটিএমএল এর এই সংস্করণটি কোনও এস-জিএমএল ভিত্তিতে ফিরে আসে" "

পরে, কীভাবে এইচটিএমএল 5 কে পার্স করবেন তা বর্ণনা করার সময় নিম্নলিখিত প্যাসেজটি উপস্থিত হয় ( জোর দেওয়া হয়েছে):

অ্যালগরিদম স্থান নীচে বর্ণিত কোন সীমা DOM গাছ গভীরতার উপর তৈরি হয়েছে, বা দৈর্ঘ্যের উপর ট্যাগ নাম, অ্যাট্রিবিউট নাম, অ্যাট্রিবিউট মান , পাঠ্য নোড, ইত্যাদি প্রয়োগকারীরা নির্বিচারে সীমা এড়াতে করার পরামর্শ দেওয়া হয়, তাহলেও এটি যে ব্যবহারিক উদ্বেগ স্বীকৃত সম্ভবত ব্যবহারকারী এজেন্টরা নীড়ের গভীরতার প্রতিবন্ধকতা আরোপ করতে বাধ্য করবে।

সুতরাং আমি মনে করি এটিই আপনার উত্তর is


25
তাহলে উত্তরটি তখন "সীমাহীন" হওয়া উচিত?
অ্যান্ডার্স লিন্ডন

1
ধন্যবাদ! যদিও আমি উজ্জীবিত করতে পারি না - এই উত্তরটি যদি এমন কিছু দিয়ে থাকে তবে এটি দুর্দান্ত লাগবে, "এইচটিএমএল বৈশিষ্ট্যের তাত্ত্বিকভাবে কোনও আকারের সীমা নেই" " এত সহজ উত্তর দিয়ে চলে আসার জন্য এটি প্রচুর পড়া।
রিনোগো

144

আমি সবেমাত্র একটি পরীক্ষা লিখেছি যা 10 মিলিয়ন দৈর্ঘ্যের একটি স্ট্রিং রাখে একটি গুন হিসাবে স্থাপন করে এবং আবার এটি পুনরুদ্ধার করে, এবং এটি দুর্দান্ত কাজ করে (ফায়ারফক্স ৩.৫.২ এবং ইন্টারনেট এক্সপ্লোরার))

৫০ মিলিয়ন ব্রাউজারটিকে "এই স্ক্রিপ্টটি সম্পূর্ণ হতে দীর্ঘ সময় নিচ্ছে" বার্তাটি দিয়ে ঝুলিয়ে রাখে।


4
১ কোটি ডলার এমন বিশাল পরিমাণের ডেটা।
রাহুল

3
আমি এই স্ক্রিপ্টটি মাত্র 50 মিলিয়নে সেট করার জন্য সম্পাদনা করেছি এবং এটি কাজ করেছে, তবে এটি 100 মিলিয়নে সেট করে ক্রোমে ট্যাবটি হত্যা করার আগে আমি এটি পরীক্ষারও সুযোগ পেলাম। : পি
সিএইচও

4
@ নিকফ: এটি ব্যবহারিকভাবে সীমাবদ্ধ (উদাহরণস্বরূপ মেমরি দ্বারা) তবে তাত্ত্বিকভাবে সীমাহীন;)
টিম শ্মেলেটার


সরাসরি পণ্য সরাসরি পাওয়ার জন্য ধন্যবাদ। আমি যদি এসজিএমএল স্পেকটি পড়তে চাইতাম তবে আমি এসজিএমএল স্পেকটি সন্ধান করতাম!
রিনোগো

6

আমি সত্যিই কোন সীমা আছে বলে মনে করি না। আমি জানি এখন আপনি করতে পারেন

<a onclick=" //...insert 100KB of javascript code here">

এবং এটা ঠিক কাজ করে। যদিও কিছুটা অপঠনযোগ্য।


27
একটু. -----
পল ড্রপার

4

থেকে HTML5 এর সিনট্যাক্স ডক

9.1.2.3 বৈশিষ্ট্য

উপাদানটির শুরুতে ট্যাগের মধ্যে একটি উপাদানের বৈশিষ্ট্যগুলি প্রকাশ করা হয়।

বৈশিষ্ট্যের একটি নাম এবং একটি মান রয়েছে। বৈশিষ্ট্যের নামগুলিতে অবশ্যই স্থানের অক্ষর, U + 0000 NULL, U + 0022 উদ্ধৃতি চিহ্ন ("), U + 0027 এপোস্ট্রোফ ('), ইউ + 003E গ্রেট-সাইন (>), ইউ + ছাড়া অন্য এক বা একাধিক অক্ষর থাকতে হবে 002F সলিডাস (/), এবং ইউ +003 ডি ইকুয়ালস সাইন (=) অক্ষর, নিয়ন্ত্রণ অক্ষর এবং ইউনিকোড দ্বারা সংজ্ঞায়িত না এমন কোনও অক্ষর। এইচটিএমএল সিনট্যাক্সে, বৈশিষ্ট্যগুলির নামগুলি নিম্ন এবং বড় হাতের অক্ষরের মিশ্রণ দিয়ে লেখা যেতে পারে এটি বৈশিষ্ট্যের নামের জন্য একটি ASCII কেস-সংবেদনশীল মিল।

অতিরিক্ত মানগুলি পাঠ্যের মধ্যে দ্বিখণ্ডিত অ্যাম্পারস্যান্ড থাকতে পারে না তা ছাড়া বৈশিষ্ট্য মান হ'ল পাঠ্য এবং চরিত্রের রেফারেন্সের মিশ্রণ।

বৈশিষ্ট্যগুলি চারটি বিভিন্ন উপায়ে নির্দিষ্ট করা যেতে পারে:

  1. খালি বৈশিষ্ট্য সিনট্যাক্স

  2. উদ্ধৃত বৈশিষ্ট্য মান সিনট্যাক্স

  3. একক-উদ্ধৃত বৈশিষ্ট্য মান সিনট্যাক্স

  4. ডাবল-কোটেড বৈশিষ্ট্য মান সিনট্যাক্স ax

এখানে বৈশিষ্ট্য মানের আকারের কোনও সীমা উল্লেখ করা হয়নি। সুতরাং আমি মনে করি সেখানে কোনও হওয়া উচিত নয়।

আপনি আপনার দস্তাবেজটির বিরুদ্ধে বৈধতাও দিতে পারেন

এইচটিএমএল 5 যাচাইকারী (উচ্চ পরীক্ষামূলক)


1

গুণগুলির দৈর্ঘ্যের কোনও সীমা আমি কখনও শুনিনি heard

এইচটিএমএল ৪.০১ স্পেসিফিকেশনগুলিতে বৈশিষ্ট্যগুলির বিভাগে কোনও সীমাবদ্ধতার উল্লেখ নেই।

এইচটিএমএল 4.01 ডিটিডি তে একই - আসলে, যতদূর আমি জানি, ডিটিডি আপনাকে বৈশিষ্ট্যের একটি দৈর্ঘ্য নির্দিষ্ট করার অনুমতি দেয় না।

যদি এইচটিএমএল 4 এ সম্পর্কে কিছুই না থাকে তবে আমি এইচটিএমএল 5 এর জন্য উপস্থিত এমন কিছু কল্পনাও করি না - এবং আমি আসলে এইচটিএমএল 5 এর 9.1.2.3 বৈশিষ্ট্য বিভাগে কোনও দৈর্ঘ্যের সীমাবদ্ধতা দেখতে পাই না ।


1

Http://dev.w3.org/html5/spec/Overview.html#e এম্বেডিং- কাস্টম- অন-visible-data থেকে :

প্রতিটি এইচটিএমএল উপাদানটিতে কোনও মান সহ নির্দিষ্ট সংখ্যক কাস্টম ডেটা বৈশিষ্ট্য থাকতে পারে।

যা এই ডেটাগুলি বিশ্লেষণ / প্রক্রিয়া করার জন্য ব্যবহৃত হয় - * বৈশিষ্ট্যের মানগুলির সীমাবদ্ধতা থাকবে।

ডেটা-বৈশিষ্ট্যগুলি সরিয়ে দেয় এবং মানগুলি একটি ডিওএমএস স্ট্রিংম্যাপ অবজেক্টে স্থাপন করা হয়। এর কোনও সহজাত সীমা নেই।

Http://dev.w3.org/html5/spec/Overview.html#domstringmap থেকে :

দ্রষ্টব্য: এখানে ডিওএমএসস্ট্রিংম্যাপ ইন্টারফেস সংজ্ঞাটি কেবল জাভাস্ক্রিপ্ট পরিবেশের জন্য। অন্যান্য ভাষার বাইন্ডিংগুলিকে এই ভাষাগুলির জন্য ডিওএমএসস্ট্রিংম্যাপ কীভাবে প্রয়োগ করা হবে তা নির্ধারণ করতে হবে

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

থেকে http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:

একটি জাভাস্ক্রিপ্ট স্ট্রিংয়ের সর্বোচ্চ দৈর্ঘ্যটি প্রয়োগকরণ নির্দিষ্ট।

[দ্রষ্টব্য: ক্রোম বাইটস ডট কমকে ম্যালওয়ারের উত্স হিসাবে রিপোর্ট করছে, তাই সাবধান]


0

এসজিএমএল এখানে দেখা 65k পাঠ্যক্রমের একটি সীমা সেট সহ বৈশিষ্ট্যগুলি সংজ্ঞায়িত করে: http://www.highdots.com/forums/html/leth-html-attribute-175546.html

যদিও আপনি যা করছেন তার জন্য আপনার ভাল হওয়া উচিত। উপরের সীমা হিসাবে, আমি দেখেছি jQuery ব্যবহারের ডেটা অ্যাট্রিবিউটগুলি কয়েক কে.কে ডেটা ব্যক্তিগতও ধারণ করে hold


5
এইচটিএমএল 5 কোনও এসজিএমএল-ভিত্তিক ভাষা নয়।
উইলিয়াম ব্রেন্ডেল

0

সম্প্রতি এজ (সংস্করণ 81.0.416.58 (b৪ বিট)) তে পরীক্ষা করা হয়েছে এবং ডেটা-অ্যাট্রিবিউটগুলির 64k এর সীমা রয়েছে বলে মনে হয়।

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