当我使用网络时,我经常会通过弹出窗口报告运行时错误(通常是 javascript)。这可能会在许多其他优秀的网站上造成非常不令人满意的用户体验,也让我想知道我无法访问哪些功能。
为什么这是一个如此普遍的问题?这是由于缺乏测试还是浏览器兼容性问题?可以做些什么来尽量减少此类问题?
顺便说一句,我没有选中“显示有关每个脚本错误的通知”。
当我使用网络时,我经常会通过弹出窗口报告运行时错误(通常是 javascript)。这可能会在许多其他优秀的网站上造成非常不令人满意的用户体验,也让我想知道我无法访问哪些功能。
为什么这是一个如此普遍的问题?这是由于缺乏测试还是浏览器兼容性问题?可以做些什么来尽量减少此类问题?
顺便说一句,我没有选中“显示有关每个脚本错误的通知”。
我把它归结为缺乏测试。
它的一些问题。
JavaScript 很容易出错。直到最近使用 Aptana,还没有很多好的 JavaScript 编码工具。没有语法检查或编译的好处,小的打字错误可以使它进入页面。除此之外,有时在一个浏览器中运行良好的代码会在另一个浏览器中导致错误。例如,我看到一个 jQuery 插件在 IE 中不起作用,但在其他所有浏览器中都可以。它原来是一个没有“var”关键字声明的变量。Firefox 和 Safari 对此表示满意,而 IE 则不然,因此编写代码的人可能甚至都不知道这是个问题。
是的,问题通常是测试。大多数认真的开发人员会尝试在许多浏览器中测试他们的网页,但实际上有很多浏览器和版本,所以你不能真正测试它们。
我通常在设计时使用 Opera 和 Firefox 进行测试,我使用 Mac 的同事也在 Safari 中进行了测试;然后不时启动一个 Vista 机器(我正在运行 linux 和 IE 的 linux 只是不可靠地复制所有奇怪的 IE 行为)并在 IE 上测试它(通常是 7 和 8 beta)。我会建议任何 Web 开发人员不要使用 IE 进行设计!错误最多的网站显然是“为 IE 设计的”,因为它们几乎无法在其他浏览器中运行,并且弹出更多错误。如果您使用标准进行设计并使用 Opera、Firefox 和 Safari 等相对标准的浏览器进行测试,然后最好使用条件注释为 IE 添加可怕的 hack (尽管它是非标准和专有的,但幸运且正确,真正的浏览器,所以你不会破坏工作代码)你有更少的问题。
错误的另一个原因是,一个使用框架旨在解决浏览器差异,并且作为副作用,或者可能只是因为错误,在某些浏览器中弹出错误消息。我当然没有时间修复框架只是为了删除错误消息,除非我可以解决问题并且它基本上仍然有效,否则我必须忽略错误消息,可能提交报告并希望它能够修复下一个版本(或者甚至更好地希望 IE 突然神奇地不复存在:)