2012-10-13 5 views
1

URL에 요청을 보내고 응답으로 jQuery를 사용하여 HTML에있는 테이블을 구문 분석하는 응용 프로그램에서 작업하고 있습니다. 이것은 반환되는 html 코드의 양이 합리적 일 때 꽤 잘 작동하는 것처럼 보이지만 큰 데이터 셋에서는 실패합니다.jQuery 구문 분석 거대한 응답이 실패했습니다.

$.get(url, function(response){ 
    $(response).find('table'); 
    }) 

가 같은 조각 코드 string.However 응답에서 테이블을 가진 했음에도 불구 emtpy 검색 결과를 반환 할 때

이 문제는 테이블 (약 1,000 열)

이 작은 경우 잘 작동 시작 어떻게하면이 문제를 해결할 수 있을까요? 테스트 목적

, 내가 조금 더 빨리이 과정을 만들기 위해, 지금과 같은이 데이터 집합에 http://socr.ucla.edu/docs/resources/SOCR_Data/SOCR_Data_Dinov_020108_HeightsWeights.html

어떤 다른 제안을하고 있어요?

+2

'$ (응답)'이란 적절한 문서 (조각)를 작성 했습니까? '$ (response) [0]'을 로깅하여 검사하십시오. 어떤 브라우저에서이 문제가 발생합니까? – Bergi

+0

jQuery 자체는 응답 구문 분석을 수행하지 않습니다. 브라우저가 응답을 처리합니다. 도서관은 당신의 세부 사항을 정리합니다. – Pointy

+0

Firefox 및 Chrome v21에서 테스트했습니다. 크롬 콘솔 http://ge.tt/9XZDVSP/v/0의 흥미로운 스크린 샷이 있습니다. –

답변

1

이 시도 : 응답 HTML/XML은 다음 find() 그것을 찾을 수 없습니다하는 <table>입니다

$.get(url, function(response){ 
    var $response = $(response); 
    var $table = $response.is('table') ? $response : $response.find('table'); 
    // ... 

}) 

합니다. 당신이 시작하는 요소의 자손만을 봅니다. 위의 코드는 이미 <table>이 있는지 확인합니다.

+0

합법적 인 것으로 보이며 페이지가 x : str에서 생성되었으므로 응답이 테이블이었습니다. 감사합니다. –

+0

예, jQuery는 HTML 문자열에서 문서를 빌드하는 것처럼 보이지 않지만 'innerHTML'처럼 구문 분석합니다. - doctypes, ''또는 ''태그가 유효하지 않은 경우 – Bergi