Články z rubriky ‘Vývoj software’

Internet Explorer v honbě za rychlostí při načítání stránek švindluje až to bolí…

Pátek, Červen 4th, 2010

V dnešní době vítězí jednoduchost nad propracovaností, rychlost nad funkčností. V duchu tohoto trendu Internet Explorer 8 nepochopitelně nenačítá dynamický obsah generovaný php skriptem, který nahrávám pomocí AJAXu. Nepochopitelně proto, že když už něco načítám dynamicky pomocí skriptu, tak se dá snad logicky předpokládat, že chci ten obsah dynamicky měnit.

Ale ne, vývojáři Microsoftu usoudili, že je lepší zrychlit zobrazení stránek tím, že se to prostě načte jen jednou (url skriptu je přeci stejná, tak což), a pak už se to jen sype z cache.

Proč to může umět správně např. Opera, která je i tak přesto rychlejší??? Proč to v Internet Exploreru 7 ještě šlo??? Sakra jak já nesnáším tyhle „inovace“.

Naštěstí jde i tento prohlížeč přinutit ke standardnímu chování. Do hlavičky dynamicky načítaného php skriptu se musí dát header expire:

 <?php
header
("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

No sláva, už to zase funguje, během těch několika hodin jsem mohl udělat něco užitečnějšího...




Když v PHP nefunguje podpora mysql (nenahrají se příslušné DLL moduly)…

Úterý, Srpen 5th, 2008

Blbost, ale potrápila mně. Dělám úpravy na počítači s Apache a PHP, které jsem sám neinstaloval (firmu nebudu jmenovat). Potřebuju se připojit k mysql databázi… nejde. Povoluji tedy příslušný modul php_mysql.dll v php.ini, restartuju APACHE… pořád neřád nejde… Zajímavé, že některé moduly se nahrály, jiné ne. Nepomohlo ani následné kopírování dll modulů z adresáře EXT do systémových adresářů…

„Finta“je v tom, že se musí ručně zkopírovat ještě pár dalších DLL souborů přímo z PHP adresáře do WINDOWS systémového adresáře. Konkrétně libeay32.dll a ssleay32.dll . Pak to konečně začne chodit… Ještě že máme google a internet!




Proč nám tuhnou webové prohlížeče aneb čert vem web 2.0

Úterý, Červenec 1st, 2008

Comment by Trevor — September 18, 2007 on ajaxian.com:“It’s effing insane that we’re still doing this shit in 2007. IE’s COM dependency is going to be the death of us all.

Právě programuju jednu složitější webovou stránku – dynamickou prezentaci fotek s efekty crossfade, pan, zoom, dynamickým nahráváním fotek. Engine je v javascriptu. A ejhle! Problémem je, že Internet Explorer 7 a všechny jeho dřívější verze mají v sobě hrozně nepříjemnou a velice zásadní chybu – když se mu něco ve skriptech znelíbí, tak při přechodu na další stránku neuvolní alokovanou paměť a zabere novou. Po učité době, (záleží na tom kolik paměti skript spotřebuje a kolik máte paměti v počítači), proto IE zkolabuje. Pomůže pouze zavření celé aplikace Internet Explorer.

Vygoogloval jsem si, že je to známá chyba která je v jádru IE usazená už odedávna. Dříve ale nebyly webové stránky tak atraktivní a interaktivní jako dnes a proto se příliš neprojevovala. Dnes, v době webu 2.0, je to BIG problém. Stává se to velmi často – surfujete, a posléze se počítač hrozně zpomalí a nebo prohlížeč rovnou zatuhne – ve správci úloh pak zjistíte že prohlížeč sežral několik set megabajtů které nechce vyvrhnout zpět. Říká se tomu odborně „memory leak“.

Nevím, proč je pro tvůrce Internet Exploreru nemožné naprogramovat webový prohlížeč, který by při přechodu na další stránku prostě natvrdo uvolnil paměť kterou alokovala předchozí stránka, ale zjevně to zatím nedokázali. Současné i minulé verze Internet Exploreru jsou totiž pro Javascript pouze jakýmsi „hostitelským prostředím“ – ti dva spolu zdvořile komunikují pomocí DOM (Document Object Model for HTML), ale do kuchyně si vzájemně nevidí. Jinými slovy každý si spravuje nezávisle „svou“ paměť. Škoda. To, že lze udělat blbý Javascript který neuvolní alokovanou paměť je jasné, ale jádro IE by si to mělo „ohlídat“. Nezbývá než se vrátit k jednoduchým ale fungujícím webům, nebo si počkat a doufat ve spásu v podobě Internet Explorer 8…

Zkoušel jsem i Mozillu 3.0, ta sice paměť uvolňuje korektně, ale zato je pomalejší než Internet Explorer, a proto mne nezachrání…