0

这是一个设计问题。我希望你们能帮助我解决这个问题。

我正在开发一个自动完成控件。它基本上是一个基于服务的控件,其中服务调用的职责是在用户输入几个单词时获取建议列表(下拉菜单)的 HTML。

服务器端代码在 C# 中,客户端在 JQuery/Javascript 中。

该控件已开发为使用两种模式:

  1. 一个 ASP.NET 控件(在生成的响应中初始化一个 jQuery 小部件)。

  2. 一个使用服务器端 HTML 生成引擎的独立 jQuery 小部件。

我在服务器上保留了建议菜单(下拉菜单)的 HTML 生成引擎。控制用户可以选择在服务器上缓存他们的数据源。如果未启用缓存,则在每个服务请求中将数据源发送到服务器以生成 HTML。

我的问题是 - 我是否也应该在客户端(JQuery/Javascript)上编写一个 HTML 生成引擎?

到目前为止,我发现了“编写单独的客户端 HTML 引擎”的以下优点和缺点:

优点:

  1. 避免了对服务器的请求,为小到平均大小的建议列表生成更快的 HTML。

  2. 没有服务器端依赖,jQuery 小部件模式将完全独立,因为不需要服务器端代码。

缺点:

  1. 代码重复:C# 和 jQuery/javascript 中的同一生成引擎。

  2. 增加维护:随着新特性/功能的添加,双方都必须进行更改。

4

1 回答 1

1

我会在客户端生成所有需要的动态 html。这要快得多。

服务器或 Web 服务可以返回一组结果 (JSON)。我会用它来填充和显示 javascript 中的结果视图。

asp.net 控件也会将数据呈现为 JSON 并在客户端使用 javascript 根据需要显示它。

如果您在 html 中使用数据,则不应该出现您提到的代码重复和增加维护的缺点,无论它是由控件呈现还是从服务获取。

于 2013-02-02T08:14:23.653 回答