Archive for October, 2008

TAE live: Defensive Cross-Browser Coding With Prototype

Wednesday, October 1st, 2008

Andrew Dupont holder oplæg om, hvordan man skriver solid cross-browser kode ved hjælp af Prototype.

Debug tools er vigtige: De fleste af os koder i FireFox. Det virker og vi har Firebug. (Næsten alle i rummet bruger Firebug). Safari har Web Inspector og Drosera. (Næsten ingen i rummet bruger nogen af dem). Opera har Dragonfly, som er næsten ny.

Debug strategier i IE:

  • “Formal” debugging
  • Brug Javascript shell m/interaktiv prompt (jash)
  • Stack traces via MS Script Debugger
  • Alert debugging

Det viser sig, at IE er supersløv, når det kommer til store DOM operationer.

Selector/$$ er performancemæssig farlig ved store og/eller komplekse DOM-træer.

Skal man så ikke bruge Prototype?. Jo, men bryd ud af abstraktionen, når omkostningen bliver for høj.

Memory leaks: Frameworks kan hjælpe lidt, men det er stadig udviklerens problem.

Muligt leak-pattern: Element.replace/update på indhold med tilknyttede listeners.

TAE live: How To Design Great Forms

Wednesday, October 1st, 2008

Joshua Fraser fra EventVue taler om, hvorfor man skal designe gode forms.

  • Left aligned, left of field: 500 ms saccade
  • Right aligned, left of field: 200 ms saccade
  • Left aligned, above field: 50(!) ms saccade

Skræk-eksempel: LinkedIn søgningen. De spørger om postal code.

“Good forms show you what you need to see at the moment you need to see it”

“The conversion rate of a registration page is inversely correlated to the number of fields.” - Bill Flagg

Email-validation on-the-fly: Ikke alene regexp men ajax-request til MX lookup. Nice!

Automatisk creditcard detection via første ciffer (måske ikke så let i DK med Dankort etc)

Hjælp brugeren med at vælge profilbilleder ved at kigge efter brugeren på social network sites.

Point and click tag-clouds baseret på eksisterende tags (delicious)

CAPTCHAs. Grimt, introducerer enorm friktion og er nemt at bryde.

Google Toolbar auto-fill: ECML compliance

TAE live: Making Friends With The Browser

Wednesday, October 1st, 2008

Brian Dilllard fra ReallySimpleHistory snakker om at imødekomme brugernes forventninger om, at browserens navigation virker som altid på en ajax-side.

Problemet: Asynkrone requests og DHTML-opdateringer af sider afspejles ikke i browserens navigation. Man kan heller ikke bookmarke en side på en fornuftig måde.

Dette problem opstår, fordi der ikke har været en fornuftig standard defineret for, hvordan man håndterer sidehistorik i browseren. Alle browsere følger en adhoc standard, der offentliggør window.history på client-side. Men Ajax knækker historikken ved, at URL’erne ikke ændrer sig ved dynamiske opdateringer.

Det kan man løse ved et hack, hvor man bruger side-hash’en til at indikere en sideændring.

Men selvfølgelig er der problemer med browser-bugs. Næsten alle browsere har bugs, der skal arbejdes omkring for at få hash-tricket til at virke.

IE8 implementerer HTML5 history specification og onHashChange event’en. Dette gør det noget lettere at implementere ajax-history. Nice!

En løsning på historik-problemet kan være at anvende ReallySimpleHistory.

Et problem kan være, at vi med teknikkerne i ReallySimpleHistory knækker en anden feature af HTML, nemlig anchor-tags. Dette vil desværre være tilfældet, indtil HTML5 history spec’en bliver udbredt.