ASP.NET/Jquery控件设计:HTML生成引擎的存放位置

ASP.NET/Jquery控件设计:HTML生成引擎的存放位置,jquery,asp.net,asp.net-controls,jquery-widgets,Jquery,Asp.net,Asp.net Controls,Jquery Widgets,这是一个设计问题。我希望你们能帮我解决这个问题 我正在开发一个自动完成控件。它基本上是一个基于服务的控件,其中服务调用的职责是在用户输入几个单词时获取建议列表(下拉菜单)的HTML 服务器端代码是C#,客户端代码是JQuery/Javascript 控制已开发为使用两种模式: ASP.NET控件(在生成的响应中初始化jQuery小部件) 使用服务器端HTML生成引擎的独立jQuery小部件 我在服务器上保留了建议菜单(下拉菜单)的HTML生成引擎。控件用户可以选择在服务器上缓存其数据源。如果未启

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

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

服务器端代码是C#,客户端代码是JQuery/Javascript

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

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

  • 使用服务器端HTML生成引擎的独立jQuery小部件

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

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

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

    优点:

  • 避免了在向服务器发出请求时为建议列表的小到平均大小生成更快的HTML

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

  • 缺点:

  • 代码双重性:C#和jQuery/javascript中的相同生成引擎

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


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

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

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


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

    @nunesspascal:ASP.NET控件不是呈现完整的html,它只是创建一个文本框并对其应用jquery小部件。按键时,它仍将使用服务。主要的问题是,假设即使我实现了ur方法,那么,在完全使用客户端的同时,我也必须在客户端和服务器上编写一个匹配引擎(再次重复代码),它将返回匹配项,不是吗?您所说的匹配引擎是什么意思?您是指在服务器上序列化数据对象并在客户端上反序列化数据对象的逻辑吗?否。根据用户输入的字母返回筛选结果的代码块/函数匹配引擎将仅驻留在您的一台服务器上。客户的责任是发送当前输入的信件并显示搜索结果。