C# web方法背后的代码与javascript?

C# web方法背后的代码与javascript?,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,使用c#代码隐藏而不是javascript来更改asp.net/html页面的内容有哪些优点/缺点?具体地说,我想知道如果我通过单击按钮从不同的服务器获得一个JSON对象,然后将该JSON对象的内容填充到一个表中,然后对该表进行排序,那么哪个更好 此外,用户可以请求多个对象,这意味着在不重新加载页面的情况下将多个表附加到同一页面。代码隐藏(code behind,C#)是一种服务器端技术,而javascript(或jQuery)是一种客户端技术。第一个更健壮,与客户机平台无关,而第二个提供了更好

使用c#代码隐藏而不是javascript来更改asp.net/html页面的内容有哪些优点/缺点?具体地说,我想知道如果我通过单击按钮从不同的服务器获得一个JSON对象,然后将该JSON对象的内容填充到一个表中,然后对该表进行排序,那么哪个更好


此外,用户可以请求多个对象,这意味着在不重新加载页面的情况下将多个表附加到同一页面。代码隐藏(code behind,C#)是一种服务器端技术,而javascript(或jQuery)是一种客户端技术。第一个更健壮,与客户机平台无关,而第二个提供了更好的响应能力(无需往返到web服务器)。对于任何业务关键型数据操作(特别是当安全性是一个主要问题时),服务器端技术(即ASP.NET/C#)是首选技术

关于注释中的第二个问题:如果您需要保留任何数据,您可以使用
ViewState
ot
SessionState
对象(以及global.asax文件中的对象/方法)

另外,对
ASP.NET
有价值的补充是
AJAX
技术(Microsoft VS实现了所谓的
UpdatePanel
控件,这大大简化了与ASP.NET页面相关的AJAX的实现),这提高了
ASP.NET
网页的响应能力


Rgds,

理想情况下,我更喜欢
ASP.NET Web API
,这意味着通过
JSON
通过
REST
ful服务从服务器获取所有数据,一旦你有了数据,你的
JS/Jquery
就应该操作你的
HTML
DOM
。两者都是包容性的,而不是排他性的。对于您的数据,安全性必须依赖于服务器。客户端数据不应该太多,也不应该泄露任何
PII
。有关动态表操作,请参见
JqueryGrid
,还有更多富客户端控件。

WebMethods/WebServices/WebAPI在为网页提供内容方面的优点:

  • 您可以使用更多的资源来处理请求,例如,您可以访问存储在文件系统或数据库中的数据,对其进行处理并以各种格式返回,如XLS、CSV、JSON、图像、字符串、二进制blob等
  • 您可以以更好的方式处理应用程序的安全性,因为代码不公开且不可编辑,这也减少了出现故障和bug的可能性
  • 您可以利用比发送请求的普通计算机更大的计算能力
WebMethods/WebServices/WebAPI的缺点:

  • 由于请求是通过网络发送的,并且存在所有可能的障碍:延迟、网络流量、数据包丢失、服务器负载等,因此响应时间将始终较高
  • 大的工作负载需要更复杂的请求处理逻辑,它将消耗更多的资源,导致维护应用程序的成本更高
  • 使用的技术通常比仅使用客户端技术(C#、ASP.NET、MVC、SQL、WCF等与JavaScript、HTML和CSS相比)更复杂
客户端技术的优点:

  • 它们是轻量级的(相对而言),可能比服务器端技术更容易学习和使用
  • 响应时间可能比向服务器发送请求快,前提是操作可以在不使用远程资源的情况下执行(例如,创建图表并将其保存为图像不一定需要向服务器发送数据)
  • 由于大多数浏览器都支持这些技术,因此可以针对很多平台
  • 对于您的特定情况,在客户端进行DOM操作会更快,AJAX是人们多么讨厌回发和往返服务器的证据
客户端技术的缺点:

  • 试图处理一些更适合服务器端操作的操作会导致复杂的、有时不实用的解决方案,因为无法访问文件系统和其他本地机器资源(HTML5在这方面帮助很大,它增加了本地存储、本地数据库和其他资源,用于将二进制字符串作为数据进行操作,但HTML5浏览器的采用级别仍然不是每个人都想要的)。具体示例:由于服务器端资源不可用,我曾经不得不仅使用jQuery、HTML和CSS创建仪表板,我还需要将这些图表呈现为图像以允许保存,然后允许将仪表板值导出到Excel,同时支持所有浏览器返回到Internet Explorer 8。无需y、 解决方案是混合使用多个脚本、插件和一些可怕的东西,比如ActiveX对象,它们最终完成了任务,但却使您的生活变得复杂,超出了必要性。(当然,在应用程序设计过程中忽略了实践性问题,但我对此没有发言权)
  • 执行速度可能比发送到服务器的复杂计算请求慢,根据底层硬件和可用资源的不同,复杂计算将执行不同的操作
  • 您的代码已公开并开放供检查,也可以动态编辑。调试客户端代码也不是一种非常愉快的体验,尽管每天都在这方面取得进展
归根结底,我认为没有最好/最差的技术,只有更适合特定工作类型的工具。如果您需要处理客户端可用的对象和数据,JS+HTML+CSS是一种方法,但是如果您需要持久化和操作存储在客户端机外的数据,或者执行复杂的计算,那么