Наложи ми се да правя разни доста щури JavaScript-гимнастики, затова реших да си направя скромна колекция от браузъри, за да съблюдавам къде какво се случва.

Инсталирах MultipleIEs, което ми докара Internet Explorer версии 3.0, 4.01, 5.01, 5.55 и 6.0, вървящи независимо една от друга. Вярно е малко бъгаво, но върши работа.
Сложих Opera 7.54, 8.54, 9.0, 9.1 и 9.23; Firefox 1.0.8, 1.5, 1.5.0.12, 2.0, 2.0.0.7 и 2.0.0.8; Flock 1.0; Netscape 9.0.0.3; SeaMonkey 1.1.6; Safari 3.03. Получи се баси и сбирщайна :)

browsers.gif

Най-хубавото е, че от всички изброени единствено Сафарито се нуждае от инсталация (разбираемо) - другите тръгват само с копиране.

Полезно:
Докато писах това се сетих за едно сайтче, което ми беше направило доста добро впечатление - BrowserShots.org. Дава възможност да тествате сайта си под разнични браузъри на различни операционни системи. Малко бавно създава самите скрийншоти, но е много полезно.
Поддържаните браузъри са:
-> Windows: Firefox 1.5 и 2.0; MSIE 5.0, 5.5, 6.0 и 7.0; Opera 9.23 и 9.24; Safari 3.0
-> Linux: Epiphany 2.14 и 2.20; Firefox 1.5 и 2.0; Galeon 2.0; Iceweasel 2.0; Konqueror 3.5; Opera 9.24
-> Mac OS: Firefox 2.0; Safari 1.3 и 2.0
Абе яко е :)

» Efficient JavaScript

Съдържание на статията:

ECMAScript

  1. Avoid using eval or the Function constructor
    1. Rewrite that eval
    2. If you want a function, use a function
  2. Avoid using with
  3. Don't use try-catch-finally inside performance-critical functions
  4. Isolate uses of eval and with
  5. Avoid using global variables
  6. Beware of implicit object conversion
  7. Avoid for-in in performance-critical functions
  8. Use strings accumulator-style
  9. Primitive operations can be faster than function calls
  10. Pass functions, not strings, to setTimeout() and setInterval()

DOM

  1. Repaint and reflow
    1. Keeping the number of reflows to a minimum
    2. Minimal reflow
  2. Document tree modification
  3. Modifying an invisible element
  4. Taking measurements
  5. Making several style changes at once
  6. Trading smoothness for speed
  7. Avoid inspecting large numbers of nodes
  8. Improve speed with XPath
  9. Avoid modifications while traversing the DOM
  10. Cache DOM values in script variables

Document loading

  1. Avoid keeping alive references from one document to another
  2. Fast history navigation
  3. Use XMLHttpRequest
  4. Create SCRIPT elements dynamically
  5. location.replace() keeps the history under control

Статията тук: http://dev.opera.com/articles/view/efficient-javascript/

Докато си разчиствах букмарковете срещнах един много симпатичен JavaScript tutorial:

http://www.howtocreate.co.uk/tutorials/javascript/

Хареса ми това, че нещата са структурирани много добре. Информацията е хубаво синтезирана и не е ограничена само до ниво "малоумни". Да си призная при всяко следващо преглеждане срещам или нови неща, или ако не, то поне готини тарикатлъци.

Това пък ми напомни, че навремето имах едно PDF книжле JavaScript Bible Gold Edition (2K pages, 35MB filesize) с автор Danny Goodman. Горещо го препоръчвам!!