2010-08-21 11 views
4

컨텍스트 : 브라우저 측 JavaScript가 거의 또는 전혀없는 HTML 앱입니다. 쉽게 변경할 수 없으므로 서버에서이 작업을 수행해야합니다.CouchApp & CouchDB를 사용하여 배너 광고를 어떻게 회전시킬 수 있습니까?

CouchDB는 부작용이 없도록 제작되었습니다. 이것은 충분히 공평합니다. 그러나 쇼, 뷰, 후속 요청이있는 사용자에게 표시되거나 사용자 개체를 기반으로 데이터를 쓰지 않고 사용자에게 표시되는 내용을 변경하는 목록을 생각할 수있는 방법이없는 것으로 보입니다.

새 레코드를 만들 때 문서 결과를 얻을 수 있습니까? 그것은 부작용이 아닌 것으로 짐작합니다.

하지만 가능한 경우 로그를 만든 다음 광고 회사에 이전 광고가 표시되었을 때 로그의 변경에 영향을받는 광고를 설명하는 문서 집합을 선택하는보기를 가질 수 있습니다.

저는 실제로 내 사이트에 광고를 게재하지는 않겠지 만, 도움말과 기사 요약 및 페이지로드마다 다른 사소한 기능을 사용할 예정입니다.

의견을 보내 주시면 감사하겠습니다.

필자는 필요한 나머지 기능을 위해 곡물을 사용하는 방법에 대해 머리를 감쌌지만이 비트는 couchdb 작동 방식에 반하는 것으로 보입니다.

+0

Yikes. 이것은 힘든 일입니다, 짐. 왜 클라이언트 측에서 js를 피할 수 있는지 명확히 할 수 있습니까? –

+0

나는 이것을 주로 각 사용자의 페이지를 사용자 정의하기 위해 사용할 것입니다. 나는 사이트가 검색 엔진 친화적이어야하기 때문에 클라이언트 측 JavaScript를 피하고있다. 문제를 설명하는 더 좋은 방법이 있습니다. Google에 대해 생각해보십시오. 로그인하면 pat search history를 바탕으로 주석이 달린 검색 결과와 주문 검색 결과가 표시됩니다. 자신의 선호도에 따라 사용자에게 표시하는 데이터를 변경해야하며 Google에 별도의 버전을 사용하고 싶지 않으며 재주문을 위해 클라이언트에게 천 가지 결과를 제공하고 싶지 않습니다. 지금 당장은 node.js 나 다른 것을 앞에 붙일 것 같습니다. – Jim

+1

오케이. 그러나 내가 아래에 개략적으로 나열된대로 목록 기능을 사용하면이 목표를 달성 할 수 있다고 생각합니다. list 함수가 재정렬을 수행하도록하고 목록보기 함수의 일부로 데이터를 가져 오는 사용자 prefs 저장 문서에서 필드를 내보내도록하십시오. –

답변

0

보기에서 임의의 문서를 선택하는 다양한 방법을 살펴보십시오. 그러면 표시 할 임의의 문서 (광고, 팁 등을 나타내는 것으로 가정)를 선택할 수 있습니다.

+0

좋아, 적어도 그것이 가능하다는 것을 알면 충분하다. 나는 couchdb에 대한 확실한 안내서를 읽고 있으며,보기 챕터를 예의 주시 할 것입니다. – Jim

1

난 당신이보기에서 문서 집합을받은 다음 임의로 또는 다른 방법 중 하나를 반환하는 하나만 선택할 목록 함수가 필요하다고 생각합니다. 그러나 목록 기능을 사용하기 때문에 쿠키 (사용자가 설정할 수도 btw)를 비롯한 사용자의 요청 세부 정보에 액세스 할 수 있습니다. 원하는 것보다 더 들립니다.

또한 쿼리 기능에 사용할 목록 기능에 대해 다른보기를 지정할 수 있습니다. 즉, 무작위 기사 만 홈페이지에 표시 할 수 있지만 모든 유형의 콘텐츠가 다른 모든 사이트에 표시 될 수 있습니다.

참고 :지도/축소 기능에서 요청에 액세스 할 수 없으며지도 기능 내에서 Math.random()과 같은 기능을 수행하면 문제가 발생합니다.

그래서 목록 기능을 사용하십시오.

http://guide.couchdb.org/draft/transforming.html

+0

사용자 쿠키에 액세스하면 사용자 테이블에서 사용자 문서를 가져온 다음 해당 데이터를 사용하여 목록 함수의 행 순서에 변환을 적용 할 수 있습니다. 그러나 이것이 캐시 기능을 깨뜨릴 것이기 때문에 couchdb는 목록 내에서 10 명의 사용자 프로파일을 조회하거나 결과를 변경하는 기능을 표시하지 않습니다. 즉,이 처리를 수행하기 위해 웹 프레임 워크가 필요합니다. – Jim

+0

제 생각에 CouchDB는 최종 출력을 해쉬함으로써 쇼와리스트 기능을위한 Etags를 생성합니다. 따라서 캐시 기능이 중단되어서는 안됩니다. –

+0

또한 목록 (View/map/reduce 함수 쌍)을 사용하는 것을 기억하십시오. 따라서보기는 사용자 문서에서 필드를 방출 할 수도 있고 사용자에게 표시 할 문서를 내보낼 수도 있습니다. 그런 다음 목록 기능은 사용자 관련 필드 및 선택할 문서 목록에 대한 액세스 권한을 갖습니다. –

관련 문제