2012-10-14 3 views
0

많은 시간을 출력 할 때 MODX getChunk() 대안이 주로 느리기 때문에 주로 찾고 있습니다. 스 니펫에서 한 번 사용하면 속도는 거의 느낄 수 없지만 루프에서 사용되면 매번 중요합니다.MODX getChunk 대체

나는 갤러리의 일환으로 ~ 페이지 당 1300 개 이미지 (100)를 출력하고 있는데 그것은 취

  • 6-7초을 출력이 청크 $ 출력에 배치 될 때 = $ modx-> getChunk. ('chunkname'); 출력이

사람이 알고 있나요 일반 HTML 덩어리를 사용하여 이미지 쿼리 결과 출력에 빠른 대안입니다

  • 2~3초?

  • 답변

    0

    청크는 어떻게 생겼습니까?

    당신은 getChunk() 호출을 포기 고려하고 당신의 HTML을 인라인 수 있습니다

    $output = ''; 
    foreach ($images as $img) { 
        $output .= '<li><a href="'.$img['path'].'" alt="'.$img['name'].'" /></li>'; 
    } 
    
    return $output; 
    

    그래 그래, 나쁜 습관이다하지만, 대안은 두 배 긴 이상 복용에 직면했을 때 그것이 나쁜 최적화 아니다.

    +0

    Revo 버전을 사용하고 있는지 궁금합니다. 나는 2.2 +에서 몇 가지 최적화가 getChunk에 이루어 졌다고 생각하는데, 속도를 크게 향상시켰다. – okyanet

    +0

    2.2.4를 사용하고 있지만 여전히 getChunk를 사용하면 이미지를 출력하는 데 필요한 시간이 두 배로 늘어납니다. 이전에는 문제를 보지 못했지만 질의 1330 이미지를 출력하고 페이지 매김에서 100을 출력 할 때 타이밍이 상당히 나빴습니다. 3 초 동안 100 개 이미지가 너무 많습니다. –

    +0

    인라인 HTML을 사용할 수는 있지만 우아한 방법은 아닙니다. 처리 시간이 오래 걸리면 어떤 의미로 청크가 동적으로 검색되는지 궁금합니다 –

    0

    아키텍처 수준이 다른 또 다른 솔루션이 있습니다. 1300 개의 이미지가 한 페이지에로드되는 엄청난 양입니다.

    디자인에 따라 처음 20-30을로드하고 사용자가 스크롤하기 시작할 때 Ajax (20 개 정도)로 나머지를로드하는 무한 스크롤을 구현하십시오.

    이렇게하면 서버에서 부하를 제거하고 대역폭을 절약하며보다 빠른 사용자 환경을 제공 할 수 있습니다. 느린 getChunk 호출을 피해 가십시오.