2012-09-18 4 views
2

자바 스크립트를 사용하여 HTML 요소의 크기를 바이트 단위로 가져 오는 방법은 무엇입니까?HTML 요소 크기 (바이트) 자바 스크립트

나는 대화

<ul> 
    <li>hello</li> 
    <li>how are you?</li> 
    <li>fine thanks</li> 
    <li>nice to meet you</li> 
    <li>nice to mmet you too</li> 
</ul> 

를 나타내는 목록을 가지고 그리고 로컬 스토리지에 그 대화를 저장할하지만, 로컬 스토리지 제한은 크롬에 5메가바이트을, 그래서에 목록의 바이트 크기를 알 필요가 몇 가지 검증을해라.

+0

http://stackoverflow.com/questions/3027142/calculating-usage-of-localstorage-space on localStorage 공간 사용량 계산 – Mifeng

답변

4

당신이 HTML에 요소를 변환하려는 경우, 당신은 마크 업이 많이있을 것입니다 경우 ID는 다음

var el = document.getElementById("convo"); 
var html = el.innerHTML; 
window.alert(html.length); 

를 사용하거나 <ul> 줄 수 방금 텍스트를 얻으려면 li 요소를 반복하고 텍스트 만 추출하여 배열에 넣을 수 있습니다. JSON.stringify 결과와 길이를 가져옵니다.

편집 :

는 자바 스크립트 16 비트 인코딩이 둘 다 내부 UCS-2 또는 UTF-16 사용합니다. 라틴어 텍스트를 가정하면 <string>.length *2은 상당히 정확한 추정치 여야합니다.

+0

인코딩에 따라 길이가 다르기 때문에 길이만으로는 정확한 바이트 수를 얻을 수 없습니다. 역시. – Mahn

+0

@Mahn - Javascript가 내부적으로'UCS-2' 또는'UTF-16'을 사용한다고 가정하면,'.localStorage'가 같은 인코딩을 사용한다는 근거가 없지만 좋은 추측을 할 수 있습니다. 그것은 약간의 바이트가 될 수도 있지만 ' .length * 2'는 좋은 추정치입니다. –

+1

사실, 당신은 원래 답변에 문자 당 16 비트를 고려하지 않았으므로, 주석 : – Mahn

관련 문제