Pergunta

Estou usando o Fancybox v.1.3.4 para exibir vídeos em um iframe em esta página.O Fancybox e os vídeos são exibidos bem, mas o problema é que, desde que adicionei o código, estou tendo uma grande pausa ao carregar o site no IE7/8, semelhante a esse assunto- a página é carregada e a IU congela por uns bons 4 a 5 segundos, impedindo-me de clicar em links, rolar ou qualquer outra coisa.Aqui está o link que coloquei no topo da página, no <head>.O pacote jQuery UI (incl.UI 1.8.11, UI Widget, UI Mouse, UI Position e UI Effects w/ Scale) estão incluídos principalmente para habilitar outros efeitos que ainda não foram carregados no site, mas serão.

<script type="text/javascript" src="/lib/jquery/jquery-latest.min.js"></script>
<script type="text/javascript" src="/lib/jquery/jquery-ui.custom.min.js"></script>
<script type="text/javascript" src="/lib/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<link rel="stylesheet" href="/lib/fancybox/jquery.fancybox-1.3.4.css" />

Usei YSlow na página, o que sugeriu mover as chamadas de script para o final, mas isso não corrigiu a pausa no IE.Em seguida, dei uma olhada no HTML DOM durante o carregamento usando as Ferramentas de Desenvolvedor do IE8, e a pausa parece ocorrer enquanto o código do Fancybox está carregando;imediatamente após a pausa, os seguintes divs aparecem na parte inferior da árvore:

<div id="fancybox-tmp"/>
<div id="fancybox-loading" (jQuery attribute here)>
...
</div>
<div id="fancybox-overlay"/>
<div class="fancybox-ie" id="fancybox-wrap">
...
</div>

É por isso, junto com o fato de que o problema apareceu depois que adicionei o fancybox à página, que percebi que era um problema de desempenho com o Fancybox, mas nada do que tentei até agora (exceto retirar o código do fancybox) parece ter teve um impacto.A última coisa que tentei foi remover referências a jQuery.ready(), caso isso possa ter ajudado a carregar o código do fancybox mais cedo e, assim, alterar o tempo da pausa, mas não adiantou muito.Não que eu realmente esperasse, mas sou um pouco novo em jQuery e Fancybox e, neste momento, estou me agarrando a qualquer coisa.

O que estou pensando agora é que pode haver um conflito entre o Fancybox e um dos outros scripts da página, como o Google Analytics, mas não sei exatamente como saber se esse é o caso ou o que fazer se isso acaba sendo isso.Alguma idéia de pessoas que conhecem esses scripts?Desde já, obrigado.

Foi útil?

Solução

Já tive um problema semelhante com o fancybox e o IE antes.Se você olhar no arquivo CSS, há vários filtros específicos do IE:

/* IE6 */

.fancybox-ie6 #fancybox-close { background: transparent; filter: 
progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='fancybox/fancy_close.png', sizingMethod='scale'); }

/* and so on */

No meu projeto, removi todas essas regras específicas do IE e o problema de congelamento desapareceu.Veja se isso resolve;caso contrário, o problema pode estar em outro lugar.

Outras dicas

você poderia usar o firebug para criar o perfil do seu código

Eu também tive esse problema com o Fancybox no IE.Para mim foi um bug no jQuery introduzido na v1.6.0.A atualização para a versão mais recente do jQuery (1.6.4) corrigiu o problema.

Mais detalhes no grupo Google Fancybox

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top