배열 방법으로 JS 문자열 연결 성능 문제 논란_javascript 기술 해결
- WBOY원래의
- 2016-05-16 18:12:02978검색
1. 전통적으로 문자열 연결은 항상 js에서 성능이 가장 낮은 작업 중 하나였습니다.
var text="Hello";
text =" World!"
초기 브라우저는 이 작업을 최적화하지 않았습니다.
문자열은 변경할 수 없으므로 연결 결과를 저장하기 위해 중간 문자열이 생성된다는 의미입니다. 백그라운드에서 문자열을 자주 생성하고 삭제하면 성능이 매우 저하됩니다.
2. 개발자들은 이를 발견한 후 최적화를 위해 배열 객체를 사용했습니다.
var buffer=[],i=0;
buffer[i ]="Hello";//해당 인덱스 값을 통해 요소를 추가하는 것이 push 방식보다 빠릅니다.
buffer[i ] =" World !";
var text=buffer.join("");
초기 브라우저에서는 문자열 연결이 많은 경우 중간에 문자열을 생성하고 삭제하는 작업이 없었습니다. 추가 방법을 사용하는 것이 훨씬 빠른 것으로 입증되었습니다.
3. 요즘 브라우저 최적화로 인해 문자열 연결 상황이 바뀌었습니다.
Safari, Opera, Chrome, Firefox 및 IE8은 모두 더하기 연산자를 사용하여 더 나은 성능을 보여줍니다. 그러나 IE8 이전 버전은 최적화되지 않았기 때문에 배열 방식은 여전히 작동합니다.
문자열 연결 시 브라우저 감지를 수행해야 한다는 의미는 아닙니다. 연결 방법을 결정할 때 고려해야 할 사항은 문자열의 크기와 개수입니다.
1) 문자열이 상대적으로 작고(2) 문자열의 수나 크기를 늘리면 IE7에서는 성능이 크게 저하됩니다.
3) 문자열 크기가 커질수록 Firefox의 덧셈 연산자와 배열 구성 기술 간의 성능 차이는 작아집니다.
4) 문자열 수가 증가할수록 Safari에서 덧셈 연산자와 배열 구성 기술 간의 성능 차이는 줄어들 것입니다.
5) 문자열의 수나 크기를 변경할 때 Chrome과 Opera의 더하기 연산자는 항상 선두를 유지해 왔습니다.
따라서 다양한 브라우저에서 일관되지 않은 성능으로 인해 실제 상황과 직면한 브라우저에 따라 선택되는 기술이 달라집니다.
대부분의 경우 추가 연산자가 선호됩니다. 사용자가 주로 IE6 또는 7을 사용하고 문자열 크기가 크거나 많으면 배열 기술이 가치가 있습니다.
성명:본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.