ASP.NET Postbacks x jQuery:有什么缺点和优点?

时间:2011-04-28 19:00:41

标签: c# jquery asp.net

我将在一些Web App页面上启动一些实验原型。我们使用了很多Postback,ViewState,UpdatePanels,ModalPopup Extender,所有ASP.NET常用的东西。对大多数情况来说这已经足够了。但我想更进一步......

我一直在玩jQuery一段时间了。我知道有什么能力。我想TRULY用$.ajax()$.get()之类的东西代替ASP.NET常用的东西。不再有回发。用户界面? jQuery UI。我对一些插件,特别是jQuery网格印象深刻。

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

然而:

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

无论如何,我会慢慢来。但是我想问你们:我到这里来的是什么?

4 个答案:

答案 0 :(得分:2)

在我回复之前,我强烈建议您使用ASP.NET MVC Framework。这与Webforms完全不同。它离ViewState和垃圾一步之遥。这是微软正在全力以赴的地方,这是目前在.NET Stack上构建更具可伸缩性和交互性的网站的唯一途径。

我真的应该这样做吗? 是。 jQuery + Ajax非常好,可以让你构建一些非常互动和可用的网站。现在事情的发展方向,如果你不在客户端使用Javascript的强大功能,你的网站希望在1995年建立。

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

我应该注意什么? 从技术上讲,您需要了解客户端编码以及HTTP如何在Internet上运行。 ASP.NET完全可以做到这一点,所以你甚至不需要知道,但如果你正在做回发等,那么你应该理解它的局限性等。

安全性怎么样?如何实施? 只要您执行与正常回发相同的操作(如CSS攻击,SQL注入,防伪等),Ajax的安全性就不会太多。

我会获得什么?我知道我会获得一些性能,因为由于ViewState而且数据太多的页面中的回发需要时间,因此我将只处理XML和/或总是轻量级的JSON格式。但我想,像往常一样,会有痛苦...... 痛苦会在哪里? 痛苦通常是复杂性。但复杂性带来灵活性。传统的ASP.NET在不必干涉的情况下处理所有事情。但现在你必须弥补请求,将其发送到服务器,接收回复,然后相应地更新DOM。你必须处理所有这些,但另一方面,你可以随心所欲地处理它。

希望有所帮助。

答案 1 :(得分:1)

我说是的。回发对于开发人员来说很容易,对用户体验来说也很糟糕。只要在页面上切换一个方框,就不要让它们因重页加载而受损。

但是,你需要考虑它将花费的时间,特别是因为你可能不得不依赖越来越多的javascript代码(如果你不熟悉它可能很挑剔)。

我最近在一个大型项目上完成了它,我很高兴我做到了。我从完整页面回发转移到WebMethods和Web服务。尝试减少服务器上的状态,这将有助于划分每个请求处理程序。

答案 2 :(得分:1)

查看asp.net-MVC它很可能是你在谈论什么并实现jquery和JSON调用。

答案 3 :(得分:0)

如果您使用PostBack和ViewState,您可能会出于某种原因这样做。它允许组件和事件。这是你在ASP.NET MVC中会遗漏的东西(你不会说你想使用ASP.NET MVC,但如果你说没有PostBack的ASP.NET,每个人都会理解ASP.NET MVC)

我使用ASP.NET和ASP.NET MVC。如果项目实际上是一个应用程序而不是一个网站(假设nyt.com是一个网站,facebook是一个应用程序),那么带有回发的ASP.NET就会发挥作用。