2013-12-12 3 views
5

몇 가지 CPU 집약적 인 계산을 수행하는 클라이언트 측 HTML5 응용 프로그램을 작성할 때 계획하는 것이 가능하고 합리적인가요? (이미지 프로세싱)CPU를 많이 사용하는 클라이언트 측 HTML5 애플리케이션을 작성하는 것이 근본적으로 잘못 되었습니까?

나는 일반적으로 서버에 계산 부하를 줄 수 있지만 HTML5에 새로운 옵션이 있기 때문에 실제로 브라우저에서 실행되는 전체 앱을 작성할 수 있는지 궁금해하고 있습니다.

정확하게 이해한다면 웹 작업자는 멀티 스레딩 작업을 도울 수 있지만 정확하게 작동하는 방법에 대해서는 깊이있는 지식이 없습니다.

다시 말하지만, 나는이 문제에 접근하는 방법에 대한 단서를 찾고 있습니다.

감사합니다.

+0

가능합니까? 예. 현명한? 어, 브라우저를 잠그지 않는 한. – BoltClock

+0

HMTL5 -> 웹 근로자! 이제, 당신이 * 그들에 대해 알고 있기 때문에, * 일부를 읽으면서 튜토리얼/예제를 따라 가십시오 - 이것이 내가 다운 투표 한 이유입니다. 어떤 형태의 대기열로 쓰여질 수 있고 동기가 될 필요가없는 작업은 "시간이 지남에 따라 펼쳐지 기"쉽습니다 (즉,setTimeouts를 사용하여) 브라우징에 부정적인 영향을주지 않도록하십시오. – user2864740

+0

@ user2864740 웹 작업자를 어떻게 사용하는지 묻지 않았습니다. 나는 그것을 가능한 해결책으로 제시하고 다른 사람들과 가능한 충고를 요구했다. 나는 웹 노동자에 관해 읽었고 그들이 일하는 방법을 알고 있습니다. 나는 그들이 갈 길이라는 것을 확신하지 못한다. – Ben

답변

4

아니요, 근본적으로 잘못되었습니다. 클라이언트 시스템은 대개 처리 능력이 뛰어나며이 성능은 브라우저에서 처리됩니다. 사용자 만족도가 좋은 방식으로 앱을 작성하세요.

웹 작업자는 다른 스레드에서 번호를 알아내는 동안 UI 자바 스크립트를 실행할 수 있습니다. 이것은 당신의 작업에 아주 적절하게 들린다.

또한이 클라이언트 쪽에서 앱을 실행하면 더 이상 서버에 대한 네트워크 연결에 의존하지 않게됩니다. 이미지 프로세싱을 사용하면 클라이언트에서 서버로 많은 데이터가 전달 될 것이므로 상당히 느릴 수 있습니다.

1

적당히 무거운 클라이언트 측 응용 프로그램을 작성하는 것이 좋습니다. 그러나 웹 응용 프로그램을 대상으로하는 사용자 유형에 주시하십시오. 해당 사용자가 최신 컴퓨터를 사용하고 있다면 일부 기본 이미지 처리만으로도 좋습니다.

작업 패턴이 클라이언트 컴퓨터에서 완료하는 데 2 ​​초 이상 걸리는 경우 서버에 작업을 지정하고 브라우저에서 처리 애니메이션을 표시하는 것이 좋습니다. 작업이 2 초 이내에 완료되면 클라이언트 쪽에서 작업을 수행 할 수 있습니다. 스크립트가 사용자의 컴퓨터를 2 초 이상 느려지 게하면 속도 저하를 감지하고 웹 응용 프로그램을 싫어할 것입니다.

처리 할 이미지가 큰 이미지 인 경우 저해상도 이미지로 변환하고 저해상도 이미지를 처리하여 집중적으로 처리하지 않도록하십시오. 그러나 사용자가 수행중인 모든 작업의 ​​정확한 로그를 유지해야합니다. 사용자가 만족하면 서버에 로그를 보내고 서버가 고해상도 이미지에서 많은 작업을하도록합니다.

+0

나는이 대답에 동의하지 않는다. 클라이언트 측에서 2 초 이상 걸리는 작업을 수행하는 것은 완벽하게 훌륭합니다. UI가 오히려 반응이있는 한. 웹 작업자는 잠재적 인 솔루션입니다. – ColinE

+0

이것이 데스크톱 이미지 처리 응용 프로그램이라면 이미지 처리 서버 측을 수행 하시겠습니까? 또는 비디오 편집 응용 프로그램? 아니! 웹 앱은 다르지 않습니다. 사용자가 염려하는 한 그들은 모두 앱입니다. – ColinE

+0

@ColinE 전적으로 동의합니다. 클라이언트의 컴퓨터에서 전체 컴퓨팅을 수행하는 것은 완벽합니다. 하지만, 저는 신생 기업으로, 사용자가 귀하의 응용 프로그램을 좋아하게 만드는 것이 얼마나 힘든지 알고 있습니다. 제 아이디어는이 응용 프로그램을 더 좋게 만들려는 의도였습니다. 부하가 분산되면 사람들은 태블릿에서도 웹 사이트를 사용할 수 있습니다. –

1

그것은 가능 합니다만, 좋은 생각인지 아닌지는 전적으로 컨텍스트에 달려 있습니다. 누가 그것을 사용할 것인지, 어떤 브라우저를 지원해야하는지, 어떤 장치를 실행해야하는지 등이 있습니다.

체크 아웃하려면 한 가지는 asm.js입니다. 브라우저가 매우 잘 최적화 될 수 있다는 점은 자바 스크립트의 하위 집합입니다 (모든 Firefox에서 작동 함). 마치 컴파일 대상으로 사용하는 것보다 현명하게 컴파일 대상으로 사용하는 것입니다. 따라서 다른 언어 (예 : C++)로 작성할 수 있으며 브라우저에서 매우 빠르게 실행될 수있는 프로그램으로 컴파일 할 수 있습니다.