152

我正在进入 Web 开发领域,并且看到了发这个词。来自非基于 Web 的背景,新的 Web 开发人员必须了解回发什么?(即它们是什么以及它们何时出现?)

如果您想分享更多信息以帮助网络世界中的新手了解回发,我们将不胜感激。

4

11 回答 11

187

以下是针对ASP.Net初学者...

什么时候发生?

回发源自客户端浏览器。通常页面上的其中一个控件将由用户操作(单击按钮或更改下拉菜单等),并且此控件将启动回发。此控件的状态以及页面上的所有其他控件(称为视图状态)被发到 Web 服务器。

发生什么了?

最常见的回发会导致 Web 服务器创建启动回发的页面的代码隐藏类的实例。然后在正常的页面生命周期内执行此页面对象,但略有不同(见下文)。如果您在页面生命周期中没有专门将用户重定向到另一个页面,则回发的最终结果将是再次显示给用户的同一页面,然后可能会发生另一个回发,依此类推。

为什么会这样?

Web 应用程序正在 Web 服务器上运行。为了处理用户的响应,导致应用程序状态改变,或者移动到不同的页面,你需要获取一些代码在 web 服务器上执行。实现这一点的唯一方法是收集用户当前正在处理的所有信息并将其全部发送回服务器。

初学者需要注意的一些事情是......

  • 回发页面上的控件状态在上下文中可用。这将允许您操作页面控件或根据那里的信息重定向到另一个页面。
  • Web 表单上的控件具有事件,因此也具有事件处理程序,就像任何其他控件一样。页面生命周期的初始化部分将在导致回发的控件的事件处理程序之前执行。因此,页面的 Init 和 Load 事件处理程序中的代码将在用户单击的按钮的事件处理程序中的代码之前执行。
  • 当页面在回发后执行时,“Page.IsPostBack”属性的值将设置为“true”,否则设置为“false”。
  • Ajax 和 MVC 等技术已经改变了回发的工作方式。
于 2008-10-08T15:50:32.277 回答
28

来自维基百科

回发是交互式网页采取的一种动作,当整个页面及其内容被发送到服务器以处理某些信息,然后服务器将同一页面回发给浏览器。

于 2008-10-08T15:02:51.543 回答
22

扩展给出的定义,作为 Web 开发人员,您需要知道的最重要的事情是在回发之间不保存任何状态。有一些方法可以保留状态,例如 ASP.NET 中的 Session 或 Viewstate 集合,但根据经验,编写程序时可以在每次回发时重新创建状态。

这可能是桌面和基于 Web 的应用程序编程之间最大的区别,我花了几个月的时间才学会了本能地用这种方式编写。

于 2008-10-08T15:05:05.160 回答
21

当网页将其数据发布回相同的脚本/dll/首先生成该页面的任何内容时,就会发生回发。

C# (asp.net) 中的示例

...

if (!IsPostback)
   // generate form
else
   process submitted data;
于 2008-10-08T16:36:34.990 回答
12

Web 开发通常涉及包含表单(<form>标签)的 html 页面。表单发布到 URL。您可以将给定的表单设置为发布到您想要的任何网址。发是指表单回发到它自己的页面/网址。

该术语对 ASP.Net WebForms 开发人员具有特殊意义,因为它是驱动页面许多行为的主要机制——特别是“事件处理”。ASP.Net WebForms 页面只有一个几乎总是回发给自身的服务器表单,这些回发会触发服务器上称为页面生命周期的东西的执行。

于 2008-10-08T15:11:32.417 回答
7

当与第 3 方 Web 服务 API 交互时,该术语也用于 Web 应用程序开发

许多 API 需要交互式和非交互式集成。通常,交互部分是使用重定向完成的(站点 1 将用户重定向到站点 2,他们在那里登录,然后被重定向回来)。非交互部分是使用“回发”或从站点 2 的服务器到站点 1 的服务器的 HTTP POST 完成的。

于 2010-03-18T20:46:06.680 回答
5

当脚本生成一个 html 表单并且该表单的操作 http POST 回同一个表单时。

于 2008-10-08T15:03:22.010 回答
4

回发本质上是当表单提交到您当前正在处理数据的同一页面或脚本(.php .asp 等)时,而不是将您发送到新页面。

一个示例可以是论坛上的页面 (viewpage.php),您在其中提交评论并将其提交到同一页面 (viewpage.php),然后您会看到它添加了新内容。

见:http ://en.wikipedia.org/wiki/Postback

于 2008-10-08T15:08:43.187 回答
3

回发是导致来自客户端 Web 浏览器的页面被推回服务器的任何内容。

有很多信息在那里,搜索谷歌回发。

大多数情况下,任何 ASP 控件都会导致回发(按钮/链接单击),但有些不会,除非您告诉它们(复选框/组合框)

于 2008-10-08T15:03:21.840 回答
3

回发是指 HTML 表单。HTML 表单有 2 种方法:GET 和 POST。这些方法决定了数据如何通过表单从客户端发送到服务器。回发是回发到提交页面的操作。从本质上讲,它形成了从客户端到服务器再返回的完整电路。

于 2008-10-08T15:04:54.007 回答
2

Yet the question is answered accurately above, but just want to share my knowledge . Postback is basically a property that we can use while doing some tasks that need us to manage the state of the page, that is either we have fired some event for e.g. a button click or if we have refreshed our page. When our page loads for the very first time , that is if we have refreshed our page, at that time postback-property is false, and after that it becomes true.

if(!ispostback)
{
 // do some task here
}
else
{
 //do another task here
}

http://happycodng.blogspot.in/2013/09/concept-of-postback-in.html

于 2013-12-18T11:13:34.077 回答