Web客户端事件处理设计

时间:2011-08-01 19:59:19

标签: web-services architecture

美好的一天,

这是比我认为的编程问题更多的Web服务设计。我会试着解释一下我想要实现的目标。在示例中,我在页面上具有3个组合框(例如,大小,颜色,纹理),它们彼此依赖。我们只能轮流选择它们(例如,第1→第2→第3)。选择组合框值后,下一个组合框将被填充+启用,我们也可以从中进行选择。

我想出了一些我可以解决这个问题的解决方案。

  1. 当我们来到页面并加载时,JavaScript会发送一个帖子,其中包含数据请求以填充这些组合框。返回的响应是所有变体(JSON)的批处理数据由JavaScript解析和处理,每个选择客户端都会这样做。
  2. 页面仅加载第一个组合框,其余组合用默认值填充。每次客户端选择一个值时,都会触发相应的事件(导致post get的ajax)以根据选择填充/处理下一个组合框。
  3. 我自己看到第一个非常复杂,如果每个值有很多选择变量,批量值可能非常大。第二个看起来对服务器有太多无用的请求,我认为这可能导致服务器过载。您如何看待这些解决方案?概念是否合适?是否值得实施第一个解决方案而不是第二个解决方案,即使它更难? 如果在我的解释中你不理解的东西,请问我会尝试更详细地解释。

1 个答案:

答案 0 :(得分:2)

我同意预取所有东西不是一个可扩展的解决方案,在某些时候可能会有不合理的数据需要获取。

根据我的经验,逐步获取数据的第二种解决方案似乎最常见。我想通过“无用的请求”,你的意思是你关心的是如果用户回溯然后重新选择,你会反复获取相同的数据。

解决我使用各种缓存技术来优化该行为的问题。

我想说一系列下拉框可能不是最好的UI。一些框架(例如dojo)具有树窗口小部件,就像用于导航目录结构的树窗口小部件一样。我认为您可能会发现这种方法看起来会更好,并且它可以很好地扩展到三级以上的层次结构。