인트라넷에서 DWR을 사용하는 동안 성능이나 보안 문제와 같은 단점이 발생합니까? Direct Web Remoting은 Ajax 요청을 사용하여 js 파일에서 서버에 접속하는 도구입니다.DWR의 단점은 무엇입니까?
답변
내가주의해야 할 한 가지 사실은 서버가 (정상적인) 전체 페이지 HTTP 전달을 사용하는 것보다 더 많은 HTTP 요청을받을 가능성이 높다는 것입니다.
설명해 드리겠습니다. 웹 페이지가 AJAX를 사용할 수있게되면 클라이언트는 양식 작성, 페이지 단편 재생성 등에 대한 HTTP 요청을 더 많이 생성하게됩니다. 개발자가 AJAX에 열중 한 시나리오를 보았고 웹 페이지를 크게 동적 인 문서. 그 결과 사용자 만족도는 좋아졌지만 모든 요청이 서버에 영향을 미치기 때문에 확장 성과 지연 문제가 발생합니다.
주 - DWR과 관련이 없지만 AJAX 문제입니다. 나는 DWR을 사용했으며 잘 작동한다. 불행히도, 나는 그것이 매우 잘 작동하고 매우 쉽게 작동하여 모든 것이 원격 작업의 후보가된다는 것을 알게되었고, 결국 거대한 개의 작은 요청 수가 발생합니다.
저는 DWR을 사용하여 프로젝트를 진행했습니다. 정말 멋진 도구였습니다.
나는 개발의 속도에 대해 확신하지 못했습니다. 그들은 on the development log이라는 게시물을 통해 3.0 버전을 출시하려고했지만 2006 년 여름에 가장 안정적인 버전 인 2.0이 출시되었습니다. 지원 관점에서 볼 때 조금 걱정됩니다 - 특히 버그가 수정되었습니다.
내가 경험 한 주요 문제는 DWR 호출을 통해 작업의 대부분이 수행되는 시스템에서 부하 테스트를 스크립팅하려는 것입니다. 호출 형식은 매개 변수 변경으로 많은 URL을 회신하는 것과 비교할 때 복제하기가 어렵습니다.
여전히 DWR은 훌륭한 프레임 워크이며 Javascript -> Java RPC를 쉽게 구현할 수 있습니다.
DWR은 사이트에 아약스 호출이 많이있을 때 유용한 도구입니다. DWR의 RPC 호출을 만드는
각 페이지는 포함해야합니다 :
가) 호출에 대응하는 인터페이스 파일이 만들어지고. 및 b) 이러한 호출을 가능하게하는 dwr 엔진 코드가 포함 된 dwr과 함께 번들 된 js 파일. 예를 들어<script src="/dwr/engine.js" ></script>
웹 응용 프로그램을 최적화하는 동안 자주 사용되는 기술 중 하나는 서버에서 리소스 (예 : js 파일)가 변경되지 않은 경우 가능한 한 브라우저 캐시를 사용하는 것입니다.
engine.js는 dwr을 최신 버전으로 업그레이드하지 않는 이상 변경되지 않습니다. 그러나 기본적으로 engine.js는 웹 서버에서 제공하는 정적 파일이 아닙니다. dwr 도구 itsef의 일부로 번들로 제공되며 dwr 컨트롤러/서블릿에서 제공합니다.이 기능은 클라이언트 측 캐싱을 지원하지 않습니다.
따라서 웹 서버의 문서 루트 아래에 engine.js를 저장하고 웹 서버가이를 정적 파일로 제공하도록하는 것이 좋습니다.
DWR 사이트에서 engine.js 캐싱에 대한 추가 정보 : http://directwebremoting.org/dwr/browser/engine/static.html – Jonik
현재 DWR 3.x에서 누락 된 기능 중 하나는 모든 사용자가주의해야한다는 것입니다. Bean의 인스턴스가 NULL 값 속성을 가질 때 해당 속성은 여전히 JSON에 주입되며 이러한 중복 데이터는 공연.
속성의 값이 NULL 인 경우 대개 프런트 엔드로 보내면 안됩니다. 문제의
세부 사항 : 다른 솔루션들 http://dwr.2114559.n2.nabble.com/Creating-Custom-bean-converter-td6178318.html
가장 큰 차이는 개체 (마샬링) 전송은 객체 참조입니다. 예를 들어
, 당신이 나무를 전송하는 데 사용하는 경우 :
| -B
| 목록에서 -C
{A, B, C}
B.parent는 C.parent가
다음은 일이다 = Javascrit에서 동일한 객체! 당신이 순환 종속성과 개체의 많은 복잡한 구조가있는 경우 나쁜 측면에서
는, • < -B, B < -C, C < -B, C < .A을 ...이 충돌 할 수있다.어쨌든, 복잡한 그래프를 그릴 수 있도록 수천 개의 개체를 단일 HTML 페이지로 전송하기 위해 제작중인 수백 개의 회사에서 사용하는 실제 프로젝트에서 사용하고 있으며 성능이 뛰어납니다.
나는이 대답에 동의합니다. 웹 기반 응용 프로그램에서 DWR을 사용했습니다. 이 응용 프로그램은 훌륭한 사용자 경험을 제공하지만 모든 JavaScript 및 httprequest 때문에 응용 프로그램이 빠르게 작동하지 않는다고 생각합니다. – Michel