Web应用通常使用“向导工具”设计原则来构建,即每个屏幕要求用户输入少量的信息,每个后续页的数据都依据前一页的输入来创建。对于某些情况,这个设计模式非常有用,如用户以一种逐步、有序的方式完成任务。遗憾的是,太多的Web应用使用了这种方法,因为它们别无选择。在Ajax技术出现之前,当基于用户输入修改页面上的某些部分时,动态地更新页面而不刷新整个页面是很难办到的,甚至根本不可能。
避免完全页面刷新的一种技术是在页面上隐藏数据,并在需要时再显示它们。例如,假设选择框B的值要根据选择框A中所选值来填写,此时选择框B的所有可取值就可以放在隐藏的选择框中。当选择框A中的所选值有变化时,JavaScript可以确定要显示哪一个隐藏的选择框,然后将该选择框置为可见,再把前一个选择框置为隐藏。这种技术还可以变化一下,用隐藏列表框中的元素动态填写选择框B中的option元素。这些技术都很有用,但是它们只在有限的情况下可用,即页面中仅限于根据用户输入对有限的选择进行修改,而且这样的选择必须相对少。
假设你在构建一个在线的汽车分类广告服务。某人想购买汽车,指定了车型年份、品牌和车型,来搜索他想买的汽车。为了避免用户的输入错误,并减少所需的动态验证次数,你决定车型年份、品牌和车型输入字段都应当是选择框,而且要考虑过去25年的车型广告。如果车型年份选择框或品牌选择框中的选择发生变化,就必须修改对应该车型年份和品牌的可用车型列表。 复制于hot007.com
要记住,对于每个车型年份,都会出现一些新的品牌,而一些老牌子可能会淡出人们的视线,所以其个数也会有变化。还要记住对于每种品牌来说,每年的车型都可能不同。如果有数十种品牌,每个车型年份每种品牌都有多种车型,那么车型年份、品牌和车型的组合数将是惊人的。由于有这么多的组合,只使用JavaScript来填写选择框是不可能的。
007网络教程网