C# web方法背后的代码与javascript?
使用c#代码隐藏而不是javascript来更改asp.net/html页面的内容有哪些优点/缺点?具体地说,我想知道如果我通过单击按钮从不同的服务器获得一个JSON对象,然后将该JSON对象的内容填充到一个表中,然后对该表进行排序,那么哪个更好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)是一种客户端技术。第一个更健壮,与客户机平台无关,而第二个提供了更好
此外,用户可以请求多个对象,这意味着在不重新加载页面的情况下将多个表附加到同一页面。代码隐藏(code behind,C#)是一种服务器端技术,而javascript(或jQuery)是一种客户端技术。第一个更健壮,与客户机平台无关,而第二个提供了更好的响应能力(无需往返到web服务器)。对于任何业务关键型数据操作(特别是当安全性是一个主要问题时),服务器端技术(即ASP.NET/C#)是首选技术 关于注释中的第二个问题:如果您需要保留任何数据,您可以使用
ViewState
otSessionState
对象(以及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的可能性
- 您可以利用比发送请求的普通计算机更大的计算能力
- 由于请求是通过网络发送的,并且存在所有可能的障碍:延迟、网络流量、数据包丢失、服务器负载等,因此响应时间将始终较高
- 大的工作负载需要更复杂的请求处理逻辑,它将消耗更多的资源,导致维护应用程序的成本更高
- 使用的技术通常比仅使用客户端技术(C#、ASP.NET、MVC、SQL、WCF等与JavaScript、HTML和CSS相比)更复杂
- 它们是轻量级的(相对而言),可能比服务器端技术更容易学习和使用
- 响应时间可能比向服务器发送请求快,前提是操作可以在不使用远程资源的情况下执行(例如,创建图表并将其保存为图像不一定需要向服务器发送数据)
- 由于大多数浏览器都支持这些技术,因此可以针对很多平台
- 对于您的特定情况,在客户端进行DOM操作会更快,AJAX是人们多么讨厌回发和往返服务器的证据
- 试图处理一些更适合服务器端操作的操作会导致复杂的、有时不实用的解决方案,因为无法访问文件系统和其他本地机器资源(HTML5在这方面帮助很大,它增加了本地存储、本地数据库和其他资源,用于将二进制字符串作为数据进行操作,但HTML5浏览器的采用级别仍然不是每个人都想要的)。具体示例:由于服务器端资源不可用,我曾经不得不仅使用jQuery、HTML和CSS创建仪表板,我还需要将这些图表呈现为图像以允许保存,然后允许将仪表板值导出到Excel,同时支持所有浏览器返回到Internet Explorer 8。无需y、 解决方案是混合使用多个脚本、插件和一些可怕的东西,比如ActiveX对象,它们最终完成了任务,但却使您的生活变得复杂,超出了必要性。(当然,在应用程序设计过程中忽略了实践性问题,但我对此没有发言权)
- 执行速度可能比发送到服务器的复杂计算请求慢,根据底层硬件和可用资源的不同,复杂计算将执行不同的操作
- 您的代码已公开并开放供检查,也可以动态编辑。调试客户端代码也不是一种非常愉快的体验,尽管每天都在这方面取得进展