c# - ASP.NET 回发 x jQuery : What are the cons and pros?

标签 c# jquery asp.net

我将在我们的一些 Web 应用程序页面上启动一些实验室原型(prototype)。我们使用了大量的 Postback、ViewState、UpdatePanels、ModalPopup Extenders,以及所有 ASP.NET 常用的东西。对于大多数情况来说这已经足够了。但我想把事情推得更远......

我已经使用 jQuery 一段时间了。我知道我能做什么我正在考虑用 $.ajax()$.get() 等真正取代 ASP.NET 通常的东西。不再有回发。用户界面? jQuery 用户界面。一些插件给我留下了深刻的印象,特别是 jQuery grid。

我认为这是 Web UI 的下一步。我的意思是,这已经是当前步骤了!我喜欢 C# 的强大功能,但对 ASP.NET 框架印象不深。我想通过这样做,我将真正将 UI 与业务逻辑分开。

但是:

  • 我真的应该这样做吗?
  • 背后的代码应该只是 Web 处理程序和 Web 服务吗?
  • 我应该注意什么?
  • 安全性怎么样?如何实现?
  • 我会得到什么?我知道我会获得一些性能提升,因为由于 ViewState 的原因,在包含太多数据的页面中回发会花费时间,并且我将仅处理 XML 和/或始终为轻量级 JSON 格式。但我想,像往常一样,会有痛苦......
  • 哪里会痛?

无论如何,我会慢慢来。但我想问你们:我在这里要做什么?

最佳答案

在我回复之前,我强烈建议您使用 ASP.NET MVC 框架。这是一种与 Webform 完全不同的开发方式。它距离 ViewState 和那些垃圾仅一步之遥。这就是 Microsoft 全力以赴的方向,也是目前在 .NET Stack 上构建更具可扩展性和交互性的网站的唯一方法。

我真的应该这样做吗? 是的。 jQuery + Ajax 非常好,可以让您构建一些非常互动且可用的网站。就目前的情况来看,说实话,如果您不在客户端使用 Javascript 的强大功能,您的网站可能会建在 1995 年。

背后的代码应该只是 Web 处理程序和 Web 服务吗? 您应该只使用处理程序/服务来改进页面的设计。您不能仅以此为基础构建整个网站。方法是创建一个页面,然后用服务来改进它。避免小细节的回发。并通过Ajax等提高速度。在Ajax上制作整个网站并不是一个好主意。

我应该注意什么? 从技术上讲,您需要了解客户端编码以及 HTTP 如何在互联网上工作。 ASP.NET 在幕后完成了这一切,因此您甚至不需要知道,但如果您正在执行回发等操作,那么您应该了解它的局限性等。

安全性怎么样?如何实现? 只要您执行与正常回发相同的操作(例如 CSS 攻击、SQL 注入(inject)、防伪造等),Ajax 中的安全性就没有太多问题。

我会得到什么?我知道我会获得一些性能提升,因为由于 ViewState 的原因,在包含太多数据的页面中进行回发会花费一些时间,并且我将仅处理 XML 和/或始终为轻量级 JSON 格式。但我想,像往常一样,会有痛苦...... 哪里会痛? 痛苦通常在于复杂性。但复杂性伴随着灵活性。传统的 ASP.NET 会处理所有事情,而无需您干预。但现在你必须组成请求,将其发送到服务器,接收回复,然后相应地更新 DOM。您必须处理所有这些问题,但另一方面,您可以以任何您想要的方式处理它。

希望有帮助。

关于c# - ASP.NET 回发 x jQuery : What are the cons and pros?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823634/

相关文章:

asp.net - .NET 中的业务 Web 应用程序 - 选择哪种技术?

c# - 使用 Windows 窗体中的按钮

c# - 使用自定义按钮从 CRM 中执行存储过程的最佳方法

javascript - innerHTML 不适用于 IE 中的 <datalist> HTML5 元素

javascript - 为什么调用失败后无法继续调用?

javascript - jQuery 简单价格 * 多个项目的总数量

c# - 我如何停靠 asp.net : table to my web page so it (the table dock) dynamically adjusts to browser width?

c# - 检查字符串类型到其他类型的转换

c# 处理参数和缺少输出

asp.net - 识别唯一的浏览器/选项卡实例,例如用户在 mysite.com 上打开了 2 个选项卡 - 分别识别