我发现有四件事对开发 JavaScript 应用程序很有帮助:
- 特征检测
- 图书馆
- 使用虚拟化的迭代开发
- JavaScript:权威指南,Douglas Crockford 和 John Resig
特征检测
使用反射来询问浏览器是否支持所需的功能。如果您想知道浏览器支持哪些事件处理,您可以使用 if(el.addEventHandler) 来满足 W3C 的要求,if(el.attachEvent) 来了解 IE 类型,最后使用 el.['onSomeEvent']。
一个大但是!
浏览器有时会谎报它们支持的功能。我不记得了,但我遇到了一个问题,即 Firefox 实现了 DOM 功能,但如果您测试该功能,则会返回 false!
图书馆
由于您已经在使用 jQuery,我将保存解释。但是,如果您遇到问题,您可能需要考虑 YUI,因为它具有出色的跨浏览器兼容性。他们甚至一起工作。
使用虚拟化进行迭代开发
也许我最好的建议是:一次运行所有的测试环境。获得一个 Linux 发行版、Compiz Fusion 和一堆 RAM。下载 VMWare 的 VMWare 服务器或 Sun 的 Virtual Box 的副本并安装一些操作系统。获取适用于 Windows XP、Windows Vista 和 Mac OS X 的图像。
基本思想是这样的:Compiz Fusion 为您提供了 4 个桌面映射到一个 Cube。这些桌面中的一个是您的 Linux 计算机,下一个是您的虚拟 Windows XP 机器,在 Vista 之后的一个,最后一个是 Mac OS X。编写一些代码后,您可以 alt-tab 进入虚拟计算机并检查您的工作。另外它看起来很棒。
JavaScript:权威指南,Douglas Crockford 和 John Resig
这三个来源为我的 JavaScript 开发提供了大部分信息。权威指南也许是 JavaScript 最好的参考书。
Douglas Crockford is a JavaScript guru (I hate the word) at Yahoo. Lookup his series "Douglas Crockford Theory of the DOM", "Douglas Crockford Advanced JavaScript", "Douglas Crockford Theory of the Dom", and ""Douglas Crockford The Good Parts" on Yahoo! Videos.
John Resig (as you know) wrote jQuery. His website at ejohn.org contains a wealth of JavaScript information, and if you dig around on Google you'll find he's given a number of presentations on defensive JavaScript techniques.
... Good luck!