opencart 이미지 로딩을 처리할 때lazylaod jquery 플러그인을 사용하고 싶습니다.
백그라운드에서 로딩할 때 웹사이트의 프런트 엔드가 표시되고, 그 안에 편집된 제품의 이미지가 표시됩니다. 배경이 표시되지 않습니다.
백그라운드에서 수동으로 제품을 추가하지 않고 크롤러를 사용하여 자동으로 제품을 입력하기 때문입니다. 즉, 이미지를 표시하기 위해 지연로드를 처리할 때 src data-data-original width height 속성이 한꺼번에 생성되므로 배경 표시는 볼 수 없지만 검토 요소는 볼 수 있습니다.
이렇게 PHP를 추가하면 다음과 같이 재현할 수 있습니다.
<code>foreach (xx as x){ $imgs.='<img src="image/catalog/lazyload_grey.gif" data-original='.$tmp.'image/catalog/product/'.$id."/".$value.' width="800" height='800'>'; } </code>
그때는 백그라운드 컨트롤러에서 정규식을 바꾸는 게 좋겠다고 생각했어요. 그것을 시도했고 효과가있었습니다. 하지만 제품이 업데이트되면 다시 덮어쓰게 됩니다.
생각해 보세요. js나 ob 함수를 사용하여 프론트 데스크를 통해 처리하는 것이 더 좋습니다.
이 둘 중 하나를 다루지는 않았지만 웹 사이트 최적화가 정말로 필요할 때 구체적인 조치를 취할 수 있도록 아이디어를 기록했습니다.
다음은 ob 함수의 작은 예입니다.
<code><?php ob_start(); echo '13712345678'; echo 'another content<br>'; $result=ob_get_contents(); echo '<hr>'; ob_clean(); if(preg_match('/\d{11,}/', $result,$match)){ echo str_replace(substr($match[0],-4),'****',$match[0]); }else{ echo 'no match'; } ob_end_flush(); // result:1371234**** </code>
처리해본 적이 없고 두 방법 모두 별로 좋지 않다고 생각합니다. 지연 로딩 또는 유사한 이미지 지연 로딩이 발생할 때 프런트엔드와 백엔드가 일관되게 표시되지 않는 문제를 처리할 수 있는 더 많은 방법이나 아이디어를 제공할 수 있기를 바랍니다.
참조 웹사이트:
ob 함수가 지연 로드를 처리
lazyload
위의 내용을 포함하여 obstart의 소소한 사용법을 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.