Autor Zpráva
kujeba
Profil
Při zobrazování modal okna v IE dochází:
a) k značné časové prodlevě
b) k "odskočení" na konec stránky, přes skutečnost, že modal okno je nahoře.

viz: Odkaz

Ve FF, Opeře, Google Chrome i v Safari vše běží bez prodlev a bez "odskakování".

Použité frameworky:
jQuery: jquery-1.4.2.min.js
jQueryUI: jquery-ui-1.8.2.custom.min.js

Volání modal okna:
//Modal dialog
if($("#dialog-form").length){
$("#dialog-form").dialog({
    autoOpen: false,
    height: 300,
    width: 350,
    modal: true,
    resizable: false,
    draggable: false
});
}

$('#from_air').live('click', (function() {
    if($('#from-to').length){
      $('#from-to').remove();
    }
    $('#dialog-form').append('<div id="from-to" style="display:none;">from</div>');
    $('#dialog-form').dialog('open');
}));
$('#to_air').live('click', (function() {
    if($('#from-to').length){
      $('#from-to').remove();
    }
    $('#dialog-form').append('<div id="from-to" style="display:none;">to</div>');
    $('#dialog-form').dialog('open');
}));


Poradíte? Zkoušel jsem googlit, ale bez úspěchu.
Fred
Profil
DD_belatedPNG mi zdařile mi to setřeluje IE6 takže se nemrknu. Je možné že to i způsobuje, protože kvůli alpha kanálu nejspíš hází png objektům absdolutní pozici. Mimochodem když už je tam jQuery proč nepoužít http://plugins.jquery.com/project/iFixPng2
Chamurappi
Profil
Reaguji na Freda:
Problém se netýká jen šestky.


Reaguji na kujebu:
a) k značné časové prodlevě
Zdržení pozoruji ve všech prohlížečích.
Podle Firebugu se u mě víc jak půl sekundy vykonává jakási funkce filter uvnitř jQuery. Takže nejde o nějakou vykreslovací či stahovací chybu, ale máš tam něco hloupě naprogramované. Předpokládám, že to něco bude samotné jQuery + metoda live. Dosud jsem nezkoumal, jak live funguje, ale z logiky věci musí po každé změně DOMu vyhodnocovat selektor, což je v tomto případě nepochybně trestuhodné mrhání výkonem.

b) k "odskočení" na konec stránky, přes skutečnost, že modal okno je nahoře.
Skutečně je nahoře? Všiml jsem si, že se neskáče na konec stránky, ale za konec stránky, přibližně o stejnou vzdálenost, jako je výška toho dialogu. Ten dialog je ve skutečnosti dole (zabírá tam místo) a nahoru je jen relativně odpozicovaný, což je docela prasárna. Někdy kolem té doby, kdy dochází k odpozicování, si jQuery UI usmyslí, že ho naroluje do výhledu — v Exploreru před tou dobou, jinde po. To je nejpravděpodobnější příčina. Ale který shluk znaků v jquery-ui-1.8.2.custom.min.js je zapotřebí upravit, aby se to nedělo, ti už nepovím…

Mimochodem, když jsem si zkusil v Exploreru 7 přizoomovat a třikrát zobrazit a zavřít ten dialog, tak se mi začala hroutit Mozilla, protože na ni nezbyla žádná paměť. Všechno si během několika zatuhlých minut naalokoval Explorer. Mám jen 4 GB RAM, takže chápu, že to na vyhledání letenky nestačí, ale na místě běžného návštěvníka bych se z toho také začal hroutit. Udělej to modré poloprůsvitné překrytí jinak a klesnou nároky. Jak prosté, hm? :-)
kujeba
Profil
Chamurappi:
Podle Firebugu se u mě víc jak půl sekundy vykonává jakási funkce filter uvnitř jQuery. Takže nejde o nějakou vykreslovací či stahovací chybu, ale máš tam něco hloupě naprogramované. Předpokládám, že to něco bude samotné jQuery + metoda live. Dosud jsem nezkoumal, jak live funguje, ale z logiky věci musí po každé změně DOMu vyhodnocovat selektor, což je v tomto případě nepochybně trestuhodné mrhání výkonem.
Ano, v tomto případě bylo opravdu použití metody live zcela zbytečné. Nicméně po jejím odstranění a nahrazení klasickou metodou click nedošlo k žádnému viditelnému zrychlení :-( .

Skutečně je nahoře? Všiml jsem si, že se neskáče na konec stránky, ale za konec stránky, přibližně o stejnou vzdálenost, jako je výška toho dialogu. Ten dialog je ve skutečnosti dole (zabírá tam místo) a nahoru je jen relativně odpozicovaný, což je docela prasárna. Někdy kolem té doby, kdy dochází k odpozicování, si jQuery UI usmyslí, že ho naroluje do výhledu — v Exploreru před tou dobou, jinde po. To je nejpravděpodobnější příčina. Ale který shluk znaků v jquery-ui-1.8.2.custom.min.js je zapotřebí upravit, aby se to nedělo, ti už nepovím…
Modal okno je pozicováno stejně jako zde. Nejsem sto najít žádnou odlišnost a chybu alespoň "odchytit".

Mimochodem, když jsem si zkusil v Exploreru 7 přizoomovat a třikrát zobrazit a zavřít ten dialog, tak se mi začala hroutit Mozilla, protože na ni nezbyla žádná paměť. Všechno si během několika zatuhlých minut naalokoval Explorer. Mám jen 4 GB RAM, takže chápu, že to na vyhledání letenky nestačí, ale na místě běžného návštěvníka bych se z toho také začal hroutit. Udělej to modré poloprůsvitné překrytí jinak a klesnou nároky. Jak prosté, hm? :-)
Bohužel, modré poloprůsvitné překrytí a modal okno je přání klienta, kterej na něm trvá. Zkoušel jsem si v IE8 přizoomovat dialog a 5x zobrazit a zavřít a jak IE, tak FF to ustáli...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0