2012-10-18 3 views
2

저는 페이스 북과 같은 게시 시스템을 쓰고 있습니다. 사용자가 텍스트 주석을 입력하고 페이지에 바로 스타일이 지정되고 서식이 지정된 상자에 표시되도록 할 수 있습니다. 텍스트는 동시에 백엔드에 대해 텍스트로 첨부됩니다. 저장된. 의견은 근본적으로 HTML5이지만, 구조가 상당히 복잡하기 때문에 실제 텍스트는 기사 내의 div 내의 div에 표시되어야합니다. 나는 jquery로이 DOM 조작을하고있다.자바 스크립트와 백엔드에서 HTML이 중복되지 않도록하려면 어떻게해야합니까?

페이지가 생성되면 백엔드는 모든 주석을 반복하고 주석 텍스트 (포스터 이름, 타임 스탬프 등과 같은 메타 데이터)를 장고 템플릿의 적절한 위치에 삽입해야합니다.

이것은 개념상의 문제를 나타냅니다. 이제 코드의 두 위치에 적절한 클래스와 ID 이름을 가진 중첩 된 HTML 태그 세트를 복제하고 있습니다. 새 주석을 추가 할 jquery 파일과 백엔드 템플릿 엔진을 사용하여 초기 페이지 html을 생성합니다. 스타일에 현저한 의견을 내고 코드의 두 곳에 HTML의 복잡한 번들을 포함시켜야하는 상황을 정확히 설계하는 과정에 있기 때문에 이것은 이미 나에게 문제가된다.

이런 종류의 HTML 복제를 다루는 가장 좋은 방법은 무엇입니까? jquery를 제거 할 수 없습니다. 동적 주석 추가를 처리해야하므로 jquery를 제거 할 수 없습니다. 동시에 장고의 템플릿 엔진의 힘을 포기하고 한 번 필요한 HTML 구조를 만들고 주석별로 세부 사항을 채우는 것은 낭비스러운 것처럼 보입니다. 그리고 빈 페이지를 항상 렌더링하고 싶지는 않습니다. 사용자가 페이지를로드 할 때마다 jquery DOM 조작으로 동적으로 매우 많은 주석을 작성할 수 있습니다. 이 문제를 해결할 생각이 아닌가?

+0

가능한 해결책 : 목록의 첫 번째 주석을 가져다가 중복하여'display : none'을 사용하여 주석 위에 놓고 편집해야하는 내용을 편집하십시오. –

답변

3

JSON이 아닌 템플릿을 사용하여 렌더링 된 HTML 단편을 반환하도록 Ajax 처리 뷰를 가져오고 jQuery는 원시 데이터에서 구성하지 않고 올바른 위치에 삽입하기 만하면됩니다.

관련 문제