2011-09-20 2 views
0

방금 ​​데이터베이스로 백업 된 첫 번째 웹 사이트를 만들었습니다 (이것은 첫 번째 데이터베이스이기도합니다). 저의 경험 부족으로 인해 jQuery 나 PHP를 특정 작업에 의존해야할지 모르겠으며 누군가가 통찰력을 제공 할 수 있기를 바랍니다.jQuery와 PHP를 사용하여 DB 결과 필터링

"파일"테이블에는 6 개의 필드와 약 50 개의 행이 있습니다. 사용자는 표의 모든 정보를 표시하고 확인란을 통해 필터를 적용하여 데이터 표시 방법을 조작 할 수 있습니다. 박스 카테고리 = DNA키워드 = 분석 체크되어, PHP 스크립트가 DB에 해당 행을 선택하는 경우, 예를 들어, 필드 카테고리키워드는 값이 어디에 DNA분석법 각기. 그런 다음이 정보는 JSON 객체로 jQuery 스크립트에 반환되어 형식 지정 및 DOM 삽입에 사용됩니다 ($ .getJSON을 사용했습니다).

지금까지는 정상적으로 작동합니다. 그러나 db에 대한 "너무 많은"쿼리가 성능 저하를 초래한다는 것을 읽으면, 문서가로드 된 직후 "파일"테이블의 모든 정보를 가져 오는 새로운 jQuery 스크립트를 작성했습니다. 이 정보는 6 가지 배열 (즉, 카테고리 []키워드 [], 모든 행 6 개에서 동일한 행의 색인과 함께)로 분산됩니다. 그런 다음 위의 필터를 적용하면 범주 []키워드 [] 배열을 검색합니다. 문자열 DNA 분석 및 카테고리에서 발견되는 경우, 인덱스 I 에 관한 정보가 표시된다 [I]키워드 [I]한다. 분명히 두 번째 방법은 db에 대한 쿼리 수를 줄입니다. 그러나 jQuery를 정확히 '행위'가 아닌 것으로 사용한다는 점에서 나에게 '틀린'느낌이 들며, jQuery가 배열 검색시 빠르다는 것은 의심 스럽다. MySQL이 테이블에서 행을 찾는 것과 같다. 두 버전의 사이트를 모두 테스트해도 똑같이 잘 수행되는 것처럼 보이지만 사이트를 로컬에서만 테스트 할 수 있습니다. 테이블 크기가 커지면 jQuery 버전의 실행 가능성은 떨어지 겠지만 100 행을 초과 할 가능성은 거의 없다고 생각합니다.

조언이 있으면 구현해야하는 옵션을 결정할 때 도움이됩니다. 귀하의 의견에 미리 감사 드리며 그러한 멍청한 삶에 대한 사과를 받아 들일 수 있기를 바랍니다.

답변

0

클라이언트 쪽 조작에 대해 AJAX 버전에서 서버에 대한 호출을 앞뒤로 반복해야합니다. inside-out 해시 접근법 (공유 키가있는 다중 배열)에는 아무런 문제가 없지만 클래스를 기반으로 행을 필터링하고 jQuery를 사용하여이를 표시하거나 숨길 수 있습니다.

<li class="dna assay">blah...</li> 

다른 곳에서 ... 개인적으로

$('#dnacheckbox').click(function(){ $('.dna').toggle() }); 

, 난 당신이 행동되지 않는으로 jQuery를 함께 무슨 일을하는지 보지 않는다 - 정렬 및 필터링 클래식 사용자 상호 작용이다.

행 개수가 몇 백 개 미만으로 유지된다고 확신 할 수 있다면 클라이언트 쪽 옵션을 사용하는 것이 좋습니다. 그것은 최종 사용자에게 확실히 느낄 것입니다.

나는 당신이 당신의 데이터를 표시하고 정확히 모르겠지만, DataTables를 보라는 제안에 대해 너무 많은 휠 R을 & D.

+0

와우 감사를 수행하기 전에! 토글 아이디어는 훌륭합니다. – Nathan

+0

도와 드리겠습니다. 그것이 당신의 문제를 해결한다면, 대답 및/또는 upvote를 체크하는 것을 잊지 마십시오. 그것이이 사이트의 작동 방식입니다. – RET

1

6 개의 필드와 약 50 개의 행을 사용하여 jquery, PHP, PHP 및 jquery로 원하는 모든 작업을 수행 할 수 있습니다. 전혀 차이가 없을 것입니다.

관련 문제