2011-04-13 2 views
1

Nokogiri를 사용하는 다음 코드를 실행하려고하지만 161 번째 반복에 도달하면 멈추는 중입니다. List는 파일을 구문 분석 한 후 작성된 노드 세트입니다.내 코드가 무기한으로 매달려있는 이유는 무엇입니까?

왜 그런 일이 벌어지고 있는지 궁금해하며, 메모리가 부족할 수 있습니까? 무한정 매달려 있다면 그 밖의 무엇을 확인할 수 있습니다.

for i in 0...list.length 
    puts i 
    # puts list[i].inner_html 
    while isReady(list[i]) 
    list[i].inner_html = "#{list[i+1].inner_html}" 
    list[i+1].remove 
    end 
end 

문제는 그냥 [난 + 1] .remove 제거되지 않은리스트를 실현하고, 그 동안 루프에서 무기한 걸려 있었다 그 이유는 해결. 귀하의 조언에 감사드립니다.

+3

당신이하는 일에 더 많은 배경 정보를 제공해야합니다. 문서가 얼마나 큽니까? 너 뭐하려고? 'isReady()'는 무엇인가요? 왜냐하면 list.length가 터무니없이 크거나, list.length +'isReady'를 실행하는 시간이 당신의 인내보다 크지 않기 때문에 루핑이되기 때문입니다. –

+0

팀 맨과 완전히 일치합니다. 그 외에도, 첫 행을'list.each_index do | i |'로 변경하십시오. 그것은 더 이해하기 쉽습니다. – sawa

답변

1

i == list.length이고 list [i + 1] .remove()가 호출되면 어떻게됩니까? 그것은 귀찮은 것처럼 보입니다.

관련 문제