【问题标题】:ASP.NET Postbacks x jQuery: What are the cons and pros?ASP.NET Postbacks x jQuery:优缺点是什么?
【发布时间】:2011-04-28 19:00:40
【问题描述】:

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

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

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

但是:

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

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

【问题讨论】:

    标签: c# jquery asp.net


    【解决方案1】:

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

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

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

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

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

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

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我说是的。回发对开发人员来说很容易,但对用户体验来说却很糟糕。不要仅仅为了切换页面上的一个框而让他们承受繁重的页面加载。

      但是,您需要考虑这将花费的时间,尤其是因为您可能不得不依赖越来越多的 javascript 代码(如果您是新手,这可能会很挑剔)。

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

      【讨论】:

      • 安全性如何?您是如何阻止外人访问您的 WebMethods/WebServices 的?
      • 你没有。您在服务器上处理身份验证。您不能阻止用户访问您的 Web 服务。您只能通过帐户身份验证将它们拒之门外。
      【解决方案3】:

      查看asp.net-MVC,这很可能是您在谈论的内容,并实现了 jquery 和 JSON 调用。

      【讨论】:

      • 这听起来很有希望...我听说过,但我真的不知道:ASP.NET MVC 是一个框架吗?或者它是一个流程指南?
      • 我添加了答案链接,以便您阅读。 MVC 是一种设计实践。它将 UI 逻辑与数据模型分开。如果您使用 VS2010,它包含(至少在专业版中)有 VS2008 的补丁/插件。
      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-09-12
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        • 2011-01-28
        • 2016-04-26
        • 2011-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多