Постове 1 - 5 от 8 с таг Firefox

Jun 22

Измина малко повече от година (1 година и 4ри дни да сме точни) от излизането на Firefox 3. Още със самото си излизане подобри рекорди. Но мина една година и какво се случи през нея със Firefox и браузърите като цяло.

browser wars internet explorer vs firefox vs safari vs opera

Като начало всички вървят напред към HTML5, доста браузъри вече имат html5 благини като <canvas>/<video>/Selector API/Storage/Data Attributes.

Същевременно има и нова версия на EcmaScript – 5 (т.е. JavaScript) и се очаква до края на година в браузърите да започват да се появяват части от новата спецификация. Която поне на хартия изглежда много обещаващо.

Но да се върнем на темата

Firefox

И след като беше подобрен рекордът брояча за свалянията на Firefox работи и момента е на скромните – 28,340,281.

В момента аз съм със версия Firefox 3.0.11. Преди време бях писал за 3.1, но такава версия няма да има. Поради факта че в 3.1 има много промени по Firefox версията ще е номерирана 3.5 и се очаква да излезе до месец най-много. За нея имам надеждата, че ще стане както при Firefox 2, която се водеше бавна, и заемаща много RAM. И при излизането на тройката всичко беше перфектно. Сега година след това отново се чува от всякъде за версия 3, че Firefox е бавен и много тежък. Така че много се надявам 3.5 да е достатъчно бърз. И от тази статия Chrome and Firefox 3.5 Memory Usage – поне нещата изглеждат много добре.

Друго нещо за което много чакам 3.5 са и няколко CSS добавки, които въпреки че не се виждат под 3.0 ги ползвам в 90% от административните модули на сайтове, който правим в pixeldepo. И така при самото излизане на 3.5 ще има доста доволни клиенти :)

Safari

Преди няколко седмици излезе версия четири, която утвърди Safari като един от най-добрите браузъри. Също така Safari е много близо до това да замени Firefox като браузъра, който ползвам всеки ден. Общо взето ако ги имаше “малките неща” от Firefox в Safari, щях да съм забравил отдавна за Firefox. Но ако Firfox 3.5 не скъси малко границата със Safari може и да забравя тези неща. Защото за момента според мен Safari е най-добрия браузър на пазара.

Chrome

Chrome, беше изненадващ ход от страна на Google, за него писах няколко пъти тази година. Това, че ползва WebKit, го прави много лесен за работа, т.е. да правиш неща за него. Подобно на Safari-то с него съм нямал проблеми до сега. Има красив интерфейс и много ме радва, че все повече познати го ползват.

Opera

Като стана дума за проблеми. Opera е браузърът който ми е създавал най-много главоболия тази година. Даже повече от IE6! Това се обяснява с факта, че като цяло Opera е малко използван и бъговете за него не са толкова известни.

Но за самата Opera как беше година? По различни статистики Opera най-много пострада от Chrome. Голяма част от пазарния дял на Chrome идва от този на Opera (което мен лично ме радва).

Друго интересно нещо е че Opera 10b идва, което е проблем за много js библиотеки. Тъй като е първия браузър който стига двуцифрен номер, той има честа да се сблъска с Browser Detection проблем. Т.е. за много библиотеки Opera 10 е Opera 1, защото вземат само първото числи от версията на браузъра :) Затова Opera 10 ще се води версия 9.8 (нещо като това че Windows 7, същност ще е 6.1)

Internet Explorer

При IE-та също не беше много тихо тази година. Продължава борбата за намаляване на IE6 и доста хора и компании спряха  да грижат за IE6, което според ме е правилното решени.

Излезе IE8, като единственото добро нещо което може да се каже за него, е че е доста по-добър от IE7. Все още е светлинни години от добрите браузъри като Firefox, Safari и Chrome, че даже и от Opera. Няма да забравя първия път като го пуснах, колко грозен ми се стори целия му интерфейс. Като цяло са налага на Microsoft да дават $10 000 на хората за да го ползват (което ми напомня за тази Mac vs PC реклама).

И като стана дума за Microsoft и реклама,  за IE8 беше пусната и доста смешна (да не кажа по-остра дума) таблица с това колко IE8 е по-добър от Firefox / Chrome. Самата таблица като я гледах и си мислех кое от кое звучи по-смешно – Performance, Web Standards или Developer Tools, не можах да избера. Всичко изглежда толкова смешно и жалко. Дано не и се вържат много нормални хора, защото не вярвам някои нормално мислещ developer да се хване.

За повече информация относно IEтата, препоръчвам тази статия: QuirksBlog: State of the Browsers – IE edition

IE browser market

Заключение

Миналата година беше доста интересна и забавна и според много хора маркира началото на новите Browser Wars. До колко това е така, всеки може да прецени за себе си. Но поне според мен бъдещето е доста светло – по-бързи браузъри, по-вече стандарти ( в добрия смисъл на думата), html5, подобрен javascript, по-малко IE6 :)

Jun 15

Доста често напоследък ми се налага да правя динамични страници изцяло задвижвани от javascript, като при тях постоянно се добавят и махат dom елементи. Което значи непрекъснато да се добавят и махат event хандлъри, което е меко казано досадно и води до много грешки. Но с вградените в CD3.Behaviors event delegation функции (за тях специално ще има поне един цял пост) тази работа е много лесна, просто делегирам всички действия към елементи които няма да се променят.

До тук всичко звучи много добре, но както винаги IE се появява на сцената с бъг, който е, че submit действието няма bubbling (т.е. не се делегира към родителските елементи на формата). Което е в пълен разрез със спецификация, но какво да се прави свикнали сме.

Този проблем го знам от много време и винаги го заобикалях по един или друг начин. Но наскоро на колега му трябваше бързо решение, което да може да ползва на 2 – 3 места затова за няколко минути написах това за Prototype.js:

Element.addMethods({
    delegateSubmit: function(element, callback){
        return $(element)
            .observe('click', function(e){
                if (e.findElement('form') && e.findElement('input[type=submit],input[type=image]'))
                    callback.call(this, e);
            })
            .observe('keyup', function(e){
                if (e.keyCode  == Event.KEY_RETURN && e.findElement('input') && e.findElement('form'))
                    callback.call(this, e);
            })
        }
});

Като цяло това, което прави тази функция е, че наблюдава за натискане на submit или image бутони или за натискане на enter върху някои input. Лошото в случая е, че страдат и нормалните браузъри като Firefox или Safari.

Затова направих нова версия, която засича дали submit се делегира (за начина, по който разбирам пише по-подробно в тази статия – Detecting event support without browser sniffing)

Element.addMethods({
    delegateSubmit: (function(){
        var el = document.createElement('div'), isSupported = 'onsubmit' in el;

        if (!isSupported){
            el.setAttribute('onsubmit', 'return;');
            isSupported = typeof el.onsubmit == 'function';
        }

        return isSupported ? function(element, callback){
            return Event.observe(element, 'submit', callback);
        } : function(element, callback){
            return $(element)
                .observe('click', function(e){
                    if (e.findElement('form') && e.findElement('input[type=submit],input[type=image]'))
                        callback.call(this, e);
                })
                .observe('keyup', function(e){
                    if (e.keyCode  == Event.KEY_RETURN && e.findElement('input') && e.findElement('form'))
                        callback.call(this, e);
                    })
        };
    })()
});

Това е доста по-добро решение което оправя проблема със submit само, когато има такъв проблем.

Тук бих могъл примерно да използвам Function.wrap върху Event.observe, но нещо не съм фен такива monkey patching неща. А и по-скоро това и хака за делегиране на focus/blur под IE ще са част от моята Event.delegate, която ако имам късмет ще е част от Prototype.js.

Ако някой има по-елегантно решение, няма да му се разсърдя ако го сподели.

Sep 19

Сутринта видях това в builderau.com:

Firefox 3.1 Alpha 2 developer features

Тук става дума за новите неща в Firefox 3.1, която се очаква съвсем скоро да излезе. Основните функции които се споменават тук са:

  • Web worker threads – най-важното от всички, според мен. Това че по-тежките javascript действия, ще бъдат отделени в нова нишка, е страхотно. И май в скоро време Firefox, може да последва примера на Google Chrome.
  • HTML5 Video tag -  добре е че все повече браузъри почват да го поддържат и дано до 1-2 години да може да спокойно да се ползва в production сайтове.
  • CSS2.1 селектори ::before ::after – Страхотно е че ги има тези двете вече, защото във internal нещата, които ползвам работят само под Firefox така че тези ще са полезни
  • CSS3 атрибути -moz-border-image, Word-wrap, Text-shadow, box-shadow and column rule

Като цяло си мисля само, че web work threads и TraceMonkey, за който  John Resign доста говори напоследък, са нещата които могат да бъдат използвани от developer-ите още сега. А пък поддръжката на CSS2.1/CSS3/HTML5 е важна в дългосрочен план, защото колкото повече браузъри вградят тези технологии, толкова по бързо ще може наистина да ги използваме.

Aug 26

При излизането на Firefox 3 бях много доволен от новата версия на Mozilla, но нищо на тоя свят не е перфектно. Има няколко неща във FireFox 3, които не се държат възпитано. Очаквам до версия 3.1 да се доизчистят нещата. Но може би, най-дразнещото е Keша. Е, за нормалния потребител може и да не е толкова дразнещо, но когато правиш даден сайт е много неприятно да натискаш Ctrl + R и гледаш 2-3-4-5… ревизии назад. Следват Tools -> Clear Private Data ( Ctrl + Shift + Del ) -> … и после се оставя само Cache отметката и се натиска бутона Clear Private Data. С това упражнение се губи наистина много време.

Но един колега ме “светна” и ми показа този Addon за FireFox 3 – Clear Cache Button (инсталация).

След инсталацията трябва да се добави бутона за чистене на Кеша: от View -> Toolbars -> Customize -> … най-долу от панела изберете Clear Cache иконката и го завлачете някъде до адрес лентата. (А може да се докопате до този панел и през контекстното меню и Customize на адрес бара)

И вече когато усетите, че някоя страница се е кеширала, просто натискате бутончето и няма кеш. :)

Jun 30

Днес след работа както винаги след тежък ден борба с бозата (както “галено” казваме на IE6), за пореден път ми мина идеята за световен ден за Unistall IE6 (нещо като Firefox 3 download day). Така че да направим IE6 най-деинсталирания софтуер на света в рамките на ден (а може и за по-дълъг период от време).

Но докато аз спя, хората в света работят.

http://www.savethedevelopers.org/

Това е добра инциятива която подкрепям с двете ръце! Лично аз съм фен на Firefox, но всичко е по-добре от IE6!