最近大家都抢着进入AJAX的行列。因为这个技术让你可以制造更快、更有效率、同时更为动态的程序。然而它本身也有一些问题。
起初,这些问题多少可以透过简单的常识来避免。但AJAX程序与它的前身DHTML之间,还是充满许多结构上的不同。
不管你对布署应用程序有多少知识,还是需要不断从发生过的错误中学习。我们把这些错误称为七个原罪,然而它不是这篇文章的全部内容。
因为在你犯下任何一项严重错误之前,很可能就会先犯几个较轻的错误。
所以我们从这些每个人都会犯的较轻错误开始讲起。这些错误十分常见,你只要随便上Google搜寻就可以找到大部分的错误。
七项轻罪
上一页按钮的误用-这是每个人都可能犯的错。上一页按钮已经变在用户在各类网页应用上都期待要有的东西。许多AJAX的新手会从AJAX设计程序上直接拖拉一个上一页按钮到程序里,结果是不能用。这有几个原因。首先,JavaScript并不是十分适合这样作的程序语言;其次,AJAX的设计思维比较新。
AJAX开发新手不见得都了解到,使用「上页」按钮不见得最好。「上一页」是你在更新页面,或要在事件上进行「复原」动作时需要的功能。在你写之前请先彻底思考过,否则恐怕就要重写一次。
不告诉使用者发生什么事-AJAX的好处之一是它在加载时不使用传统的网页用户界面。所以你必须额外设计一些视觉指示,让用户知道发生了什么事。
忽略连结-这是另个AJAX可能发生的标准错误:忽略可以被拷贝贴在程序之外的网址。你自己应该也常复制网页上的网址然后寄给别人吧?当你使用AJAX技术时,让使用者可以剪贴网址的唯一办法就是手动提供这个功能。为什么呢?因为在一个AJAX程序里,服务器不提供网页: 网页由JavaScript动态产生!所以请不要忽略使用者的潜在需要,因为对一般网页来说这是最常见的功能。请自己花力气提供网址,因为服务器不会作这件事。
使用内容控制来取代页面控制-如果你希望提供动态的内容控制,那AJAX打破传统的客户-伺服端架构是一个绝佳的功能。但它同时也会是个诅咒:重写页面的特定区域,来调整用户的互动模式,绝对有所帮助,但这也让你见树不见林。
我们往往会关注于网页特定的区块,而忘记整个网页不会随之被服务器更新。在屏幕上陈旧的信息可能会让网页四分五裂,或让使用者困惑。请把你的注意放在整个页面上;并确定任何动态内容的改变,能让使用者看到的部分都有被更新。
把spider拒于门外-AJAX的好处是,你可以在不需要重新读取的情况下,把一大堆文字贴到页面上。而这同时也是它的坏处。如果这个应用希望兼容于搜索引擎--呃,结果会怎样你可以自己想象。不管这个网页怎么变化更动,请放几个固定的文字在网页上方,让搜索引擎的spider可以处理。
产生乱码-AJAX支持的字符码并不多。这虽然不是极关重要,但忘记这件事的确会造成问题。程序基本的字符组是UTF-8。不管JavaScript传送什么,请不要忘记将其正确编码,同时记得在服务器端设定内容的编码。
让不支持JavaScript的使用者无所适从-市面上有些浏览器不支持JavaScript,但使用这些浏览器的人不会知道这代表什么意思。请记得要提供信息给这些用户。
老实说大多时候这些是常识问题。但问题的发生往往是在情况没那么显而易见的时候。
