【问题标题】:Moving from Page A to Page B in Asp.Net. What is the "Best" way?在 Asp.Net 中从页面 A 移动到页面 B。什么是最好的方法?
【发布时间】:2010-10-25 17:02:32
【问题描述】:

我有一个名为 PageA.aspx 的用户。此用户需要访问 PageB.aspx。显而易见的方法是使用超链接将它们简单地发送到 PageB.aspx。这让我想到了在页面之间获取的其他方法。可以使用 javascript 进行客户端跳转。还有看似庞大的服务器端重定向。

我想知道的是,如果有的话,这些不同方法之间的性能影响是什么。我将假设服务器端的重量要重一些,但是要重多少呢?这些方法的规模是否不同?以一种方式与另一种方式相比是否存在任何隐藏问题?

谢谢!

【问题讨论】:

    标签: asp.net performance client-side server-side pt


    【解决方案1】:

    真正的链接最适合大多数情况。所有用户代理都知道链接是什么以及它代表什么。它最适合 SEO、可访问性和可用性。

    如果您需要,例如,需要跟踪有关单击哪个链接的详细信息,则服务器端(通过回发)重定向很好……但这是对服务器的附加请求(以及对用户的时间)。它还搞砸了 SEO(等),因此它只是在适当的“网络应用程序”中的一个可行选项,其中蜘蛛或可访问性受到控制或忽略。

    JS 可以为您提供跟踪的能力,但在禁用 JS 的环境中(单独)它是无用的。将活动发送回服务器会增加负载,因此需要考虑。

    如果需要,可以考虑使用标准链接并使用 jquery 来挂钩点击事件以跟踪事物。但真的......只有当你需要它时,它会稍微降低用户体验。

    简而言之:除非您有充分的理由不这样做,否则请遵守标准。

    【讨论】:

      【解决方案2】:

      我认为重要的问题是用户为什么从 PageA 转到 PageB?他们做了什么导致这种情况发生?

      是否因为他们请求了一些不同的资源(“获取”),他们是否向您的服务器提交数据(即,它是“帖子”的一部分),用户是否知道 PageA 与 PageB 不同(他们是概念上相同的资源,但对它的不同看法)还是其他?

      其他考虑因素,例如是否可以在没有 PageA 的情况下访问 PageB(是否可以添加书签,是否有自己的 URL,是否应该在浏览器中将其视为不同的 URL?)将指导您。

      如果不了解这些东西,很难给你一个“最佳”的解决方案。

      至于使用 Server.Transfer 或 Response.Redirect,这两种方式的区别在这里已经讲过了:

      Server.Transfer Vs. Response.Redirect Response.Redirect and Server.Transfer When would I use Server.Transfer over PostBackURL?

      哦,这些都不适合 ASP.NET MVC 应用程序,您应该改为路由到控制器上的操作。

      http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another-action-and-passing-information-to-it.aspx Redirect to action in other controller

      【讨论】:

        【解决方案3】:

        我的一般做法是,任何显示数据的页面都应该是 get。帖子应该接受数据,但不能返回,恕我直言。

        因此,我(几乎)总是在发帖后进行重定向。这是防止用户错误的小成本。

        一方面,它阻止了相同数据的多个帖子——如果用户出于任何原因重新加载(或点击后退按钮),我不希望重新提交数据。

        搜索引擎问题也是一个重要问题。如果 PageB 是您要编入索引的页面,则不会通过 javascript 或帖子找到它。

        【讨论】:

          猜你喜欢
          • 2017-02-09
          • 2017-02-14
          • 2011-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-02
          • 1970-01-01
          相关资源
          最近更新 更多