2014-05-09 5 views
0

Gmail에서 "중요한 메일 표시"와 비슷한 웹 페이지에서 사용자가 클릭하거나 클릭 할 수있는 별표를 표시하는 좋은 방법은 무엇입니까? 또한, stackoverflow에서 별과 비슷합니다 (여기 왼쪽에!)토글 된 별 저장하기

저는 jQuery와 레일을 사용하고 있습니다.

FRONT 측면 질문 : jQuery에서 이것을 유지 관리하는 좋은 방법은 무엇입니까? 아마 마크를 중요시하고 아마도 클릭 리스너를 추가 할 것입니까? 또한 상태를 기억하고 강조 표시된 별을 표시하거나 해제해야합니다.

SERVER 쪽 질문 : 다른 질문은 라우팅에 관한 것입니다. 사용자가 클릭하면 서버에 게시됩니다.

두 경로가 있어야합니까?

POST ./email/mark_important 
POST ./email/unmark_important 

또는 하나의 경로가 있어야합니까?

POST ./email/toggle_importance 

저는 코드 &의 유지 관리 용이성에 중점을 둡니다. 감사!

+0

"너무 광범위한"질문의 표준 사례 여야합니다. 먼저 자신의 아이디어를 몇 가지 시도해보고 문제가있을 때 다시 문의하십시오. – Blazemonger

+0

글쎄, 나는 너에게 동의하지 않는다. 이 질문은 나에게 합당한 것 같다. 대부분의 애플리케이션에서 기본 디자인은 리팩토링에 시간이 걸리기 때문에 오랜 시간 동안 사용되는 경향이 있습니다. 최상의 테스트 커버리지가 아니면 위험합니다. 나는 나쁜 건축물이 영원히 머무를 것이라고 말하지 않고있다. 실수하기 전에 그것에 대해 물어 보는 것은 꽤 영리하다. 당신이 얻는 답에 동의 할지도 모르겠지만, 적어도 당신은 서로 비교할 생각이 있습니다. 좋은 아키텍처는 경험이 필요합니다. 실수 나 불량한 디자인을 보지 못하면보기가 어렵습니다. –

답변

1

클라이언트 쪽에서는 CSS 클래스에서 토글을 사용합니다 (예 : "checked"및 "unchecked"). 토글이 수행 된 후 요소에서 결과 CSS를 읽고 상태를 저장하기 위해 on/off 매개 변수 (원시 부울)가있는 고유 한 서버 측 메서드를 호출합니다.

이렇게하면 사용자가 이미지에서 많은 시간 (매우 빠름)을 클릭하더라도 항상 올바른 값을 서버에 보냅니다. 마지막 호출은 항상 일을 올바르게 만듭니다.