2011-01-30 2 views
2

디자인 결정이 한 가지 있습니다.리치 웹 클라이언트 대 씬 웹 클라이언트

내 웹 (아약스) 응용 프로그램에서 우리는 사용자 인터페이스 논리를 어디에 두어야할까요?

자바 스크립트 (순수한 단일 페이지)를 통해 완전히로드해야합니까? 데이터 만 이동하고 이동합니다.

또는

해야 서버는 동적으로 풍부한 사용자 인터페이스를 만들 수있는 자바 스크립트를 통해 번역 어떤 형식 (XML)를 보낼 수 있습니다. (준 아약스). 그래서 일부 데이터와 UI는오고갑니다.

어떤 옵션이 더 좋습니까? (속도, 개발 용이성, 플랫폼 독립성)

감사합니다.

답변

1

가장 큰 영향은 초기 페이지로드 시간이 걱정되는지 여부입니다. 페이지로드시에 모든 UI를 가지고 있어도 상관이 없다면 UI 대신 데이터를 셔틀 링하여 앱의 응답 속도를 향상시킬 수 있습니다. 더 빠른로드가 필요하고 더 큰 AJAX 요청에 신경 쓰지 않는다면 UI 마크 업을 보내는 것이 나쁘지 않습니다. 사용자가 데이터로 미리 UI를 렌더링하고 완전한 완성 된 마크 업 데이터를 사용자에게 전송할 수있는 서버의 능력이 있다면 브라우저가 더 빨리 수행되고 초기 페이지로드가 빨라집니다.

어떤 코스를 선택 하느냐는 작업에 달려 있습니다. 모든 요청이 동일한 방식으로 처리 될 필요는 없습니다.

2

IMO는 주로 어떤 응용 프로그램인지에 달려 있습니다. 데스크톱 응용 프로그램처럼 사용됩니까? 그러면 한 페이지 만 제대로 작동 할 수 있습니다. 대부분 Ajax 클라이언트가 same drawbacks as using frames인데, 데스크탑 스타일 애플리케이션에서는 큰 문제가 아닙니다.

두 번째 옵션은 기존의 웹 사이트에 여러 가지 다른 페이지와 더 많은 콘텐츠가있는 경우 더 잘 작동합니다. 그런 다음 다른 콘텐츠에 대해 별도의 URL을 갖고 싶습니다. 하지만 Ajax 애플리케이션을 만들면 처음부터 많은 것을 제공하지 못할 수도 있습니다. 페이지에 Ajax 비트가 있으면 유용하지만 로딩 모두 Ajax를 사용하면 데이터가 느려지는 것을 제외하고는 앱에 아무 것도 추가하지 않을 수 있습니다.

2

나는 몇 달 전 비슷한 딜레마에 직면했다. Lennart (위)에서 귀하의 앱이 더 데스크탑적인 경우 파자마 또는 유사한 라이브러리로 이동하는 것이 좋습니다. 파자마의 가장 큰 장점 중 하나는 논리적으로 잘 구분 된 백엔드 및 프론트 엔드 코드입니다. IMO는 매우 중요합니다.

앱이 데스크톱 앱과 다른 경우 (예 : Google 앱인 경우) 단일 변경으로 인해 전체 앱이 중단되거나 유지 관리가 더 쉬운 등 여러 가지 이점이 있습니다. 앱 서버를 제공 할 수 있습니다 json 및 기타 웹 서버는 정적 컨텐츠 및 js를 제공합니다. Js는 json 앱 서버에 데이터를 요청합니다. 그렇게해서 우리는 프론트 엔드를 유지하고 백엔드를 분리 할 수있었습니다. 더 나아가 우리는 파자마보다 js lib로 mootools를 선택했습니다. 당연히 취향과 신청이 필요합니다. 우리는 파이썬 템플릿 서버 측 템플릿을 사용했지만 컴파일시에 일반적인 접근 방식처럼 런타임에 사용하지 않았습니다. 이것은 우리의 생각을 조금 바꿔야했지만 많은 장점이있었습니다.

결국 내 이야기를 들려 주겠지 만 관련성이 있으며 도움이 되리라고 생각했습니다.

0

어떤 옵션이 더 좋습니까?당신은 크로스 브라우저 호환성을 의미하는 경우 (속도, 개발의 용이성, 플랫폼 독립성)

플랫폼 독립성, 파이썬 코드가 당신을 위해 모든 것을 처리하는 온건 한 재정의 인프라를 포함하기 때문에 잠옷을 사용하는 거대한 이유입니다. JS 호환성 클래스가 없습니다.

어쨌든 잠옷은 클라이언트 응용 프로그램을로드 한 다음 데이터 전용으로 json-rpc를 사용하는 것입니다. 이는 모든 UI 코드가 한 곳에서 위젯에 포함되므로 서버와 클라이언트를 분리하는 것이 더 쉽고 유지 관리가 더 쉽기 때문에 (앱을로드 한 후) 더 빠르기 때문입니다.

저는 DokuWiki와 같은 자바 스크립트를 사용하는 스크립트를 보았습니다. 내 생각에는 "왜?" 그러나 그것은 꽤 잘 추측합니다. 장식을 위해 JS의 가끔 비트가있는 정적 페이지가 대부분있는 ​​경우 아마 맞을 것입니다.

관련 문제