문제

HTML의 속성 값에 얼마나 걸리나요?

HTML5 스타일 데이터 속성을 사용하고 있습니다.data-foo="bar") 새로운 응용 프로그램에서, 한 곳에서는 공정한 데이터 (100 자 이상)를 저장하는 것이 정말 편리합니다. 이 금액이 괜찮다고 생각하지만 너무 많은 금액에 대한 의문이 제기됩니까?

도움이 되었습니까?

해결책

HTML 4

HTML 4 관점에서 속성은 SGML 구성입니다. 그들의 한계는 HTML의 SGML 선언 4:

         QUANTITY SGMLREF
                  ATTCNT   60      -- increased --
                  ATTSPLEN 65536   -- These are the largest values --
                  LITLEN   65536   -- permitted in the declaration --
                  NAMELEN  65536   -- Avoid fixed limits in actual --
                  PILEN    65536   -- implementations of HTML UA's --
                  TAGLVL   100
                  TAGLEN   65536
                  GRPGTCNT 150
                  GRPCNT   64

여기서 문제의 값은 "attsplen"이며 요소의 속성 사양 목록 (해당 요소의 모든 속성의 총 크기)이어야합니다. 위의 참고 사항에 따르면 고정 한도는 피해야한다고 언급하므로 대부분의 구현에서 사용 가능한 메모리 외에는 실제 제한이 없을 가능성이 높습니다.

HTML 5

HTML 5는 다른 것 같습니다 사양 "이 버전의 HTML은 비 SGML 기준으로 돌아갑니다."

나중에 HTML 5를 구문 분석하는 방법을 설명 할 때 다음 구절이 나타납니다 (중요성 추가) :

아래에 설명 된 알고리즘 제한 없음 생성 된 돔 트리의 깊이에 길이에 태그 이름, 속성 이름, 속성 값, 텍스트 노드 등. 구현자는 임의의 한계를 피하도록 권장되는 반면, 실제적인 문제는 사용자 에이전트가 중첩 깊이 제약을 부과 할 수 있음을 인식하고있다.

그래서 나는 그것이 당신의 대답이라고 생각합니다.

다른 팁

난 그냥 테스트를 작성했습니다 길이가 길어집니다 10000000 속성으로 다시 검색하면 잘 작동합니다 (Firefox 3.5.2 & Internet Explorer 7)

5 천만 건은 브라우저가 "이 스크립트를 완료하는 데 오랜 시간이 걸립니다"메시지와 어울립니다.

나는 한계가 있다고 생각하지 않습니다. 나는 지금 당신이 할 수 있다는 것을 압니다

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

그리고 그것은 잘 작동합니다. 조금 읽을 수는 없지만.

에서 HTML5 구문 DOC

9.1.2.3 속성

요소의 속성은 요소의 시작 태그 내부에 표현됩니다.

속성에는 이름과 값이 있습니다. 속성 이름은 공간 문자 이외의 다른 문자, u+0000 null, u+0022 인용 표시 ( "), u+0027 apostrophe ( '), u+003e 더 큰 부호 (>), u+로 구성되어야합니다. 002f solidus (/) 및 u+003d는 부호 (=) 문자, 제어 문자 및 유니 코드로 정의되지 않은 문자와 동일합니다. 이는 속성 이름에 대한 ASCII CASE Insensitive 일치입니다.

속성 값은 텍스트가 모호한 앰퍼 샌드를 포함 할 수 없다는 추가 제한을 제외하고 텍스트와 문자 참조의 혼합입니다.

속성은 네 가지 방법으로 지정할 수 있습니다.

  1. 빈 속성 구문

  2. 인용되지 않은 속성 값 구문

  3. 단일 크기 속성 값 구문

  4. 이중 인용 속성 값 구문

여기서 속성 값의 크기에 대한 제한은 언급되지 않았습니다. 그래서 나는 아무것도 없어야한다고 생각합니다.

당신은 또한 당신의 문서를 확인할 수도 있습니다

HTML5 유효성 검사기 (높은 실험적)

나는 속성의 길이에 대한 한계에 대해 들어 본 적이 없다.

HTML 4.01 사양에서 속성에 대한 섹션 이것에 대한 제한을 언급하는 것은 없습니다.

동일합니다 HTML 4.01 DTD - 사실, 내가 아는 한, DTD는 속성의 길이를 지정할 수 없습니다.

HTML 4에 그것에 대해 아무것도 없다면, 나는 HTML 5에 그와 같은 어떤 것도 나타날 것이라고 생각하지 않습니다. 그리고 나는 실제로 길이 제한을 보지 못합니다. 9.1.2.3 속성 HTML 5 섹션 중 하나입니다.

에서 http://dev.w3.org/html5/spec/overview.html#embedding-custom-visible-data:

모든 HTML 요소에는 모든 값으로 지정된 수의 사용자 정의 데이터 속성이있을 수 있습니다.

이 데이터를 구문 분석/처리하는 데 사용되는 것-* 속성 값에는 한계가 있습니다.

데이터-아트 리 부스와 값은 domstringMap 객체에 배치됩니다. 이것은 고유 한 한계가 없습니다.

에서 http://dev.w3.org/html5/spec/overview.html#domstringmap:

참고 : 여기서 DomStringMap 인터페이스 정의는 JavaScript 환경만을위한 것입니다. 다른 언어 바인딩은 해당 언어에 대해 DomstringMap을 구현하는 방법을 정의해야합니다.

DomstringMap은 Getter, Setter, Greator 및 Deleter와의 인터페이스입니다. 세터에는 유형 Domstring의 두 매개 변수, 이름 및 값이 있습니다. 값은 JavaScript 문자열에 직접 매핑되는 Type DomString입니다.

에서 http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:

JavaScript 문자열의 최대 길이는 구현 특이 적입니다.

참고 : Chrome은 Bytes.com을 맬웨어의 소스로보고하고 있으므로주의하십시오.

SGML은 여기에서 볼 수있는 65k arecters의 한계 세트로 속성을 정의합니다.http://www.highdots.com/forums/html/length-html-attribute-175546.html

당신이하는 일에 대해서는 괜찮을 것입니다. 상한에 관해서는, jQuery 사용 데이터 속성이 몇 k의 데이터를 개인적으로 보유하는 것을 보았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top