使用HTTPHandler和.aspx的优势是什么?它们具有相同的功能吗?它们是否更轻巧、更快速?
它们的一些缺点是什么?
使用HTTPHandler和.aspx的优势是什么?它们具有相同的功能吗?它们是否更轻巧、更快速?
它们的一些缺点是什么?
Aspx使用完整的Web表单,具有复杂的页面生命周期和大量的额外处理。HttpHandler是纯粹且轻量级的,它只具有您实现的功能。
通过 ".aspx",你实际上是指 System.Web.UI.Page 的一个实例,正如你可以在该类的元信息中看到的那样,它是 IHttpHandler 的一种实现 - 换句话说(粗略地说),Page 实例就是一个 HttpHandler(这是重点)加上一堆东西,使其具有 Page 行为。
因此,区别在于使用 Page,你可以利用它提供的所有东西(视图状态、控件性质、生命周期等等...),但代价是必须拥有所有这些开销,无论你是否需要,而编写自己的实现则可以让它尽可能轻量化和适合你选择的目的,但代价是必须自己编写所有内容。
因此,当你不关心 Page 支持时,HttpHandler 就特别适合,因为你不会提供语义页面响应 - 使用 Page 提供 XML、JSON、图像或任何 HTML 样式标记几乎肯定是错误的。
实际上,我大多数时候选择第三个选项 - MVC :)