2014-01-12 2 views
1

그래서 내가하고 싶은 것은 트윗 박스와 비슷한 상자가있는 것입니다. 사용자가 '@'을 입력하면 (예 : keyup을 사용하여) 문자를 입력하고 (예 : 'J') 문자를 입력하면 자신이 따라 다니는 사람들 중 4 명을 얻고 싶습니다. 즉 제임스 , 제이, 잭, 등 ...). 내가 접근하는 방법은 AJAX를 호출하여 SQL 테이블을 쿼리하여 사용자가 따르고 이름이 해당 하위 문자열로 시작하는 모든 사용자를 찾는다는 것입니다.하지만 FB가 친구와 함께하는 일은로드하는 것입니다. 모든 사용자의 친구가 방문 할 때 '@'를 입력하면 계속해서 데이터베이스를 쿼리하는 대신 클라이언트 측 배열을 검색한다는 의미입니다. 그게 더 나은지 확신 할 수는 없지만 ... 더 나아요? 또한 언제 사용자의 모든 사용자를로드합니까? 그/그녀가 어떤 페이지를 방문하자마자? 그리고 그것은 전통적인 것입니까?트위터 같은 트윗 박스?

tl; dr - 로그인 한 사용자가 미리로드하여 배열로 저장하거나 데이터베이스를 쿼리하여 계속 가져와야합니까?

감사합니다.

+0

angular.js와 같은 jquery 프레임 워크를 사용하고 있습니까? –

+0

@ dksaini14 아니, 아니야. – user3187877

+0

ajax 호출이 서버로 보내지면 서버의 CPU에 스레드가 생성됩니다. 그래서 만약 당신이 온라인으로 친구 검색을위한 10 명의 사용자를 찾으면 그것은 광석 CPU를 소비 할 것입니다. 그래서 더 좋은 옵션은 그룹에리스트를 가져 오는 것입니다. 예 : Arjun을 검색하고 A를 입력하려면 A라는 이름의 모든 친구의 목록을 가져옵니다. 그래서 R (두 번째 글자)을 입력하면 Ajax 요청을 보내지 않습니다. –

답변

0

ajax 호출이 서버로 전송되면 서버의 CPU에서 스레드가 생성됩니다. 따라서 친구 목록에 대해 10 명의 온라인 사용자를 검색하면 더 많은 CPU를 소비하게됩니다. 그래서 그룹에서 가져 오기를하는 것이 더 좋습니다. 예 : Arjun을 검색하려고합니다. A를 입력하면 이름이 A 인 모든 친구의 목록을 가져옵니다. 그래서 R (두 번째 글자)을 입력하면 Ajax 요청을 다시 보내지 않습니다.

관련 문제