代码之家  ›  专栏  ›  技术社区  ›  James

设计决策-javascript数组或HTTP处理程序

  •  1
  • James  · 技术社区  · 15 年前

    我正在构建一个允许用户选择颜色和大小的网页。一旦他们选择了这些,我需要执行一个查找,看看库存是否存在,并基于此更新一些UI元素。

    我认为将所有单个产品数据放入多维的javascript数组(对于任何页面实例只有10-50条记录)并编写一些客户端例程是可行的,原因有两个。一个是因为它保持了UI的速度,另一个是最小化了对服务器的回调。我对这个解决方案担心的是代码味道。

    作为另一种选择,我考虑使用一种更纯粹的Ajax方法来使用HTTP处理程序和JSON,或者可能是两者的混合。我的问题是,对于使用ASP.NET 2.0堆栈解决这个问题,您有什么想法?

    [编辑]

    我还应该提到,此页面将在SharePoint环境中运行。

    4 回复  |  直到 15 年前
        1
  •  4
  •   John M Gant aman_novice    15 年前

    假设数据是静态的,我会投票选择1。在JavaScript数组中存储和检索数据元素相对简单,完全在您的控制范围内。回叫服务器会带来许多可能的故障点。此外,我认为将数据保存在页面内存中所需的代码更少,对任何一个对javascript有着初步了解的人来说都更容易阅读。

        2
  •  2
  •   Berry Tsakala    15 年前

    对于这样的任务,我反对Ajax,投票(并实现)第一个选项。

    据我所知,你不会创造 Code smells 如果JS部分是由服务器端编写的。

    从用户的角度来看,Ajax是无线浏览的体验杀手,因为任何小故障或MIS服务都会失败,或者只是将交互时间延长20倍。.

    我在我的网站上实现的记录比你的还要多,用户也很喜欢。因为我的一些用户使用网络咖啡或可疑的酒店wifi,否则它将无法工作。

    此外,Ajax使服务器与客户机交互代码更加复杂,IMO是Web编程中最棘手的部分。

        3
  •  0
  •   steve_c    15 年前

    到目前为止,我同意你的第二个选择。只要Ajax调用在这种情况下不执行长时间运行的过程,它就应该非常快。

    我工作的应用程序使用Ajax和httpHandler做了很多工作,我们的调用执行很快。只需确保最小化响应中返回的JSON的大小。

        4
  •  0
  •   Justin Niessner    15 年前

    选择第二个选项。如果涉及的项目太少,那么Ajax调用的性能应该相当好。您将使您的代码远离客户端,希望能够防止客户端脚本可能导致的任何基于浏览器的问题,并拥有一个更干净的应用程序。

    编辑

    还要考虑用户可以修改客户端脚本。如果用户的选择没有其他验证发生,这可能允许他们配置一个缺货的产品。