2013-02-19 2 views
0

다른 YouTube 동영상을 반영하는 페이지에 '탭'이 있습니다. Iframe API를 사용하여 주문형 비디오를로드합니다. IE 8 [우리 페이지는 HTML 5]를 제외한 모든 브라우저에서 모든 것이 잘 작동합니다. 여기에 언급되지 않은 오류가 발생하기 시작합니다. [YouTube iframe API 오류 49 행에서 "제거"비디오 코드가 변경되어 문제가 해결되었음을 알게되었습니다.YouTube iFrame API : 성능 문제

그러나 이제 사용자가 Tab을 클릭하면 먼저 전체 화면을 비워 둔 다음 비디오 렌더링을하고 몇 초 후에 전체 페이지를 구입했습니다. ID를 가진 새로운 DIV를 넣고 새로운 플레이어를 넣는 것은 자바 스크립트이기 때문에 그런 식으로 진행해서는 안됩니다. 솔직히 새로운 페이지로드는 페이지 내에 새로운 Youtube 비디오를 제거하고 넣는 것보다 빠릅니다.

성능을 향상시키는 방법에 대한 아이디어가 있습니까?

function AddVideo(videoid,playerid){ 
    if(player != undefined) { 
     stopVideo(); 
     player.destroy(); 
    } 
    jQuery("#player").remove(); 
jQuery("." + playerid).html('<div id="player"></div>'); 
player = new YT.Player('player', { 
    height: '360', 
    width: '623', 
    videoId: videoid, 
    events: { 
    'onReady': onPlayerReady, 
    'onStateChange': onPlayerStateChange 
    } 
}); 
} 

위의 JS 코드는 플레이어를 제거하고 다시 가져옵니다. HTML 뒤에는 Data-youtube 태그와 parent DIV 참조 태그가 붙어 있고 "player"div를 추가 한 다음 iframe youtube 동영상도 추가합니다.

+0

성능뿐 아니라 때로는 완벽한 페이지도 표시하지 않고 비디오 플레이어 만 표시합니다. 어떤 아이디어? –

답변

-1

좋아요, 좋아, StackOverFlow에서 솔루션을 발견했습니다. 제거하기 전에 Iframe을 숨겨서 이제는 훌륭합니다!

+0

솔루션은 어디에 있습니까 ?? 어디에서 그렇게 보여줄 수 있니? – Kulpemovitz

+0

글쎄, 길게 잃어 버렸지 만, 내가 말했듯이, 해결책은 단순히 youtube가 들어있는 iframe을 숨기고 나서 remove 메소드를 호출하는 것입니다. 간단한 단어와 2 줄의 코드 :). –