2012-06-06 2 views
2

backbonejs를 사용하여 MVC 구조화 된 모바일 앱을 만들고 싶습니다. 나는 정보를 웹을 검색하고 난 단지에 대한 좌향 선회 백본 플러그인 발견 : 나는 함께 backbone.js 및 좌향 선회를 사용하는 문제로Strophe, backbonejs 및 jquery-mobile

strophe.pubsub.js 
strophe.forms.js 
strophe.vcard.js 
strophe.private.js 
strophe.roster.js 

실행할 수 있습니까?

답변

4

아마도 내 자신의 strophe.plugins을 언급하고있을 것입니다. 그것들은 물론 상자에서 잘 작동 할 것이고, 그 외에도 완전히 테스트 커버됩니다. 물론 Strophe가있는 다른 플러그인을 사용할 수도 있습니다. 어떤 방식 으로든 Backbone과 충돌하지 않습니다.

독립적으로 작업하면서 strophe.plugins는 Backbone.xmpp과 함께 사용하도록 작성되었습니다. 나는이 라이브러리를 사용하여 백본 모델/컬렉션을 XMPP PubSub 노드와 동기화하여 모든 클라이언트에서 실시간 이벤트를 제공 할 수 있도록했습니다.

실제로 두 클라이언트와 작동하는 방법은 demo입니다.

+0

음, 사실 backbone.js없이 앱을 코딩하기 시작했고 완전히 다른이 라이브러리를 발견했습니다. 나는이 시나리오가 bobj와 더 잘 작동하는지 궁금하다. 만약 당신의 todo 애플리케이션을 가지고 더 나아가면, 한 단계 더 나아가 야한다 : collection 노드가 다른 todo-leaf 노드를 가지고 있다면, 나는 먼저 pageTodos에있는 서버들로부터 그것들을 요청한다. 그런 다음 특정 todo-list를 선택한다. 항목을 열고 pageTodoList로 이동하십시오. 그런 다음 pageTodos로 돌아가서 다른 할 일 목록을 선택합니다. 그런 다음 pageTodoList는 첫 번째 수행 할 작업 목록의 브라우저 캐시 항목과 함께로드됩니다. – user1054134

+0

jquery에서는 목록 항목이 DOM에서 제거되도록 pageTodos로 다시 이동하기 전에 pageTodoList의 모든 목록 항목을 제거합니다. 그러나 내가 선택한 첫 번째 목록에서 항목을보고 싶다면 모든 항목을 다시 가져와야합니다. backbone.js를 사용하면 어떻게됩니까? pageTodo로 돌아가서 나중에 필요할 경우 서버에서 다시 가져올 때 pageTodoList의 모든 항목을 제거해야합니까? ... 예 : pageTodos (다른 할 일 목록의 컬렉션을 보여줍니다), pageTodoList (리프 노드 인 todo리스트). – user1054134

+0

XMPP없이 백본에서 모든 작업을 수행 할 수 있습니다. XMPP가 앱의 필수 부분이 아니며 이것이 최초의 백본 인 경우 시작하지 않아도됩니다. 또한 대부분의 설명을 관리 할 수있는 뷰가 있지만 이해하기 어렵습니다. 여러 번 가져올 필요가 없으며 데이터를 메모리에 보관할 수 있습니다. 그것은 결국 단일 페이지 응용 프로그램입니다. – ggozad

3

라이브러리를 함께 사용하면 문제가 없습니다.

약 12 ​​개월 전, 저는 Backbone.js와 strophe를 사용하여 xmpp/ejabberd를 기본 메시징 플랫폼으로 사용하여 한 페이지 소셜 네트워킹 웹 응용 프로그램을 구현 한 작은 팀원이었습니다. ejabberd를 사용자 정의 RESTful API (http://beta.playup.com)로 대체합니다.

연결 관리와 같이 페이지 앱을 작성할 때 고려해야 할 몇 가지 문제가 있습니다. 중지 연결 클라이언트 측을 만들 때 페이지 새로 고침시 사용자 계정을 다시 연결하는 방법이 필요합니다 (js가 분명히 다시로드 됨).

또한 메모리 누수 문제가 발생했습니다. 백본 뷰에서 커스텀 이벤트를 던질 때 조심하십시오. 뷰를 완료 한 후에 수동으로 바인딩을 해제해야하므로주의하십시오. 그렇지 않은 경우 뷰는 바운드 이벤트를 통해 활성 상태로 유지되며 GC하지 않습니다. 즉, 앱에 약간의 라이프 사이클을 도입해야 할 것입니다.

일반적으로 말하지만, 어떤 크기의 웹 앱을 사용하는 경우에만 문제가됩니다.