2016-10-10 6 views
0

다른 게시물에서 자바 스크립트의 최대 문자열 길이가 512MB (~ 2^27)와 같은 제한이 있어야한다는 것을 알았습니다. "tableEntries는"예를 들어해진다자바 스크립트 : 최대 문자열 길이 Chrome

i = 1; 
 
selectionField.value = i; 
 
i++; 
 
for (i;i<=tableEntries;i++){ 
 
selectionField.value = selectionField.value + "," + i; 
 
}

: 내 응용 프로그램에서 다음 코드가 "40000". 이 코드는 Firefox에서 제대로 실행되지만 (약 5-10 초가 소요되며 장기 실행 스크립트에 대한 경고가 표시되지만) Chrome에서는 실행되지 않습니다. Chrome은이 루프에 끼어 들어 페이지를 표시 할 수 없다고 말합니다. 이 예기치 않은 결과를 초래할 수있는 크롬의 특정 설정이 있습니까? 최종 문자열의 길이는 ~ 240k 문자 여야합니다. 이것은 초기에 언급 한 제한에 따라 좋을 것입니다.

미리 도움을 청하십시오!

+0

: http://stackoverflow.com/questions/34957890/javascript-string-size-limit-256-mb-

코드에 추가,이 같은 것 for-the-the-all-browsers – superUser

+0

그냥 테스트 해본 결과 크롬 콘솔에서 루프를 실행할 수있었습니다. –

+0

Chrome 콘솔에서 테스트했는데 실행할 수있었습니다. – superUser

답변

0

문제는 문자열의 길이가 아니지만 입력 필드의 값을 240k ~ 번 업데이트하려고합니다.

더 나은 솔루션은 변수에 필드 값을 복사하고 메모리에서 문자열 연결을 수행 한 다음 완성 된 문자열을 DOM에서 한 번만 업데이트하는 것입니다 (화면 상). 이 도움이 될

i = 1; 
var str = i; 
i++; 
for (i;i<=tableEntries;i++){ 
str = str + "," + i; 
} 
selectionField.value = str;