这是一个设计问题。我希望你们能帮助我解决这个问题。
我正在开发一个自动完成控件。它基本上是一个基于服务的控件,其中服务调用的职责是在用户输入几个单词时获取建议列表(下拉菜单)的 HTML。
服务器端代码在 C# 中,客户端在 JQuery/Javascript 中。
该控件已开发为使用两种模式:
一个 ASP.NET 控件(在生成的响应中初始化一个 jQuery 小部件)。
一个使用服务器端 HTML 生成引擎的独立 jQuery 小部件。
我在服务器上保留了建议菜单(下拉菜单)的 HTML 生成引擎。控制用户可以选择在服务器上缓存他们的数据源。如果未启用缓存,则在每个服务请求中将数据源发送到服务器以生成 HTML。
我的问题是 - 我是否也应该在客户端(JQuery/Javascript)上编写一个 HTML 生成引擎?
到目前为止,我发现了“编写单独的客户端 HTML 引擎”的以下优点和缺点:
优点:
避免了对服务器的请求,为小到平均大小的建议列表生成更快的 HTML。
没有服务器端依赖,jQuery 小部件模式将完全独立,因为不需要服务器端代码。
缺点:
代码重复:C# 和 jQuery/javascript 中的同一生成引擎。
增加维护:随着新特性/功能的添加,双方都必须进行更改。