씬 클라이언트 (bosanova 터미널)를 사용자의 프런트 엔드로 사용하는 웹 앱이 있습니다. 씬 클라이언트와 PC 사이에서 JavaScript의 성능 차이가 나타났습니다. 터미널은 IE6에 내장 된 윈도우 XP를 실행하고 있으며, 폼 엘리먼트에 대한 간단한 검증을하기 위해 프로토 타입 JS 프레임 워크를 사용하고있다.씬 클라이언트와 PC 간의 자바 스크립트 성능
예를 들어 다음은 필자가 필수 입력란이 채워지는 것을 확인하는 것입니다.
.numeric 및 .alphanumeric에 대해이 두 가지가 더 있습니다. 즉, 테스트하여 해당 양식 양식을 제출하지 못하도록 오류를 푸시합니다.
$$('.requiredfield').each(function (elem){
if (($(elem).value.length == 0) || ($(elem).value == null)) {
$(elem).addClassName("nonvalid");
$(elem).siblings().first().addClassName("error");
requiredErrors.push($(elem));
}
});
제가 보는 문제는 파이어 폭스 나 IE에서 PC 페이지 5-20 필드가있는 형태의 검증 밖으로보다 더 처리하는 반 두 번째는 어쩌면 걸립니다. 그러나 터미널에서 유효성 검사를 실행하는 데는 15 ~ 25 초가 소요되며 동일한 페이지보다 빠릅니다. 필자가 언급 한 것처럼 필자는 IE6에서 이것을 PC에서 테스트했으며 성능이 저하되는 것을 보지 못했습니다. Bosanova에 대한 전화로이 게시물을 올리기 직전에 수행 한 단말기의 메모리를 업그레이드 할 수 있었으며 그 결과는 변경되지 않았습니다.
스크립트를 변경하여 양식 필드를 한 번만 돌리고 .required .numeric .alphanumeric을 처리하면 확실합니다. 지금은 PC와 터미널 (씬 클라이언트)간에 성능 차이가 있습니다. 왜 그런지 궁금합니다.
누구든지 문제 해결 경험이 있거나 프로토 타입/자바 스크립트가 터미널에서 이러한 성능 손실을 겪는 이유를 알고 있다면 몇 가지 팁을 크게 고맙게 생각합니다.
업데이트 : >>>>>>>>>>>>>>>>>
은 아직도 테스트하고이 문제를 조사하고 내가이 공유하고자하고있다. 우리는 어제 새로운 터미널을 받아서로드하고 테스트했습니다. IE6를 실행하는 새로운 터미널은 다른 브라우저와 마찬가지로 완벽하게 작동했습니다. 물론 그것은 PC보다 느린 편이었습니다. 1. 실행중인 IE6과 2. 씬 클라이언트 였지만 속도 차이는 수백 초 였고 동일한 스크립트를 실행하는 10-50 초 차이 였기 때문입니다. 2 개의 다른 씬 클라이언트의 물리적 사양은 다르지 않습니다. 1.2 ghz (이전)와 1.6 ghz (신규) 메모리는 동일했으며 HD/DOM은 512MB (이전)와 1gig (신규)였습니다. 아직도 오래된 터미널에서 무슨 일이 일어나고 있는지 지적 할 수는 없지만 터미널의 특정 모델/개정판과 관련이있는 것으로 보입니다.
업데이트 : >>>>>>>>>>>>>>>>>
감사합니다. 나는 아직도 자바 스크립트를 배우고 있다는 것을 기꺼이 인정할 것이다. 저는 프론트 엔드 자바 스크립트에서 프로젝트가 필요함에 따라 지난 한 해 동안 교묘히 다루어 온 서버 측 프로그래머입니다. 나는 아침에 그것을 약간 재 작업하고 내가 견딜 수 있는지 알아 보겠습니다. – Nathan
업데이트하기 만하면됩니다. 몇 가지 제안 사항을 추가하고 스크립트의 속도를 높였습니다. 이렇게하면 사용자가 실수를 할 때까지 많은 논리를 우회 할 수있었습니다. 그래서 이것은 도움이되었습니다 (15-20보다는 8-15 초). PC와 Thinclient 간에는 여전히 큰 차이점이 있습니다. – Nathan
@Nathan : 많은 유효성 검사 라이브러리 중 하나를 사용해 보셨습니까? 많은 사람들이 당신의 삶을 훨씬 쉽게 만들어 줄 것입니다. 아주 특별한 습관이 필요한 경우가 아니라면 필요한 모든 기능을 모두 캡처 할 것입니다. 사실 저에게는 잠시 동안 일해 온 저 자신의 도서관이 있습니다. –