我正在进入Web开发,并且看到了postback抛出的单词.来自非基于Web的背景,新的Web开发人员必须了解有关回发的内容吗?(即它们是什么以及它们何时出现?)
您希望分享的任何其他信息,以帮助网络世界的新手了解回发将是非常感谢.
以下是针对ASP.Net的初学者......
回发源自客户端浏览器.通常,页面上的一个控件将由用户操作(单击一个按钮或更改下拉列表等),此控件将启动回发.此控件的状态以及页面上的所有其他控件(称为"视图状态")将发布回 Web服务器.
最常见的是回发导致Web服务器创建启动回发的页面类后面的代码实例.然后在正常页面生命周期内执行此页面对象,略有不同(见下文).如果你不明确的地方在页面生命周期内将用户重定向到另一个页面,回发的最终结果将被再次显示给用户相同的页面,然后又回传可能发生,等等.
Web应用程序正在Web服务器上运行.为了处理用户的响应,导致应用程序的状态改变,或者移动到不同的页面,你需要得到一些代码到Web服务器上执行.实现此目的的唯一方法是收集用户当前正在处理的所有信息,并将其全部发送回服务器.
初学者要注意的一些事情是......
回复页面上的控件状态在上下文中可用.这将允许您根据其中的信息操纵页面控件或重定向到另一页面.
Web表单上的控件具有事件,因此具有事件处理程序,就像任何其他控件一样.页面生命周期的初始化部分将在导致回发的控件的事件处理程序之前执行.因此,页面的Init和Load事件处理程序中的代码将在用户单击的按钮的事件处理程序中的代码之前执行.
在"Page.IsPostBack"属性的值将被设置为"真"时,页面回发后执行,而"假".
像Ajax和MVC这样的技术改变了回发的工作方式.
来自维基百科:
回发是交互式网页所采取的动作,当整个页面及其内容被发送到服务器以处理某些信息时,服务器将相同的页面发布回浏览器.
当网页将其数据发回到相同的脚本/ dll /首先生成页面的任何内容时,就会发生回发.
C#中的示例(asp.net)
...
if (!IsPostback) // generate form else process submitted data;
扩展给定的定义,作为Web开发人员,您需要知道的最重要的事情是回发之间没有状态.有一些方法可以保留状态,例如ASP.NET中的Session或Viewstate集合,但是根据经验编写程序,您可以在每个回发中重新创建状态.
这可能是桌面和基于Web的应用程序编程之间的最大区别,并且花了我几个月的时间才学会了我本能地以这种方式编写的方式.
Web开发通常涉及包含表单(标签)的html页面.表单发布到URL.您可以将给定的表单设置为发布到您想要的任何网址.一个回发是当窗体回发到它自己的页面/ URL.
该术语对ASP.Net开发人员具有特殊意义,因为它是驱动页面大量行为的主要机制 - 特别是"事件处理".ASP.Net页面只有一种服务器形式,几乎总是回复自身,这些后期触发器在服务器上触发执行称为页面生命周期的事情.
在与第三方Web服务API交互时,该术语还用于Web应用程序开发
许多API都需要交互式和非交互式集成.通常,交互式部分使用重定向完成(站点1将用户重定向到站点2,在那里他们登录并重定向回来).非交互式部分使用"回发"或从站点2的服务器到站点1的服务器的HTTP POST完成.
当脚本生成html表单并且该表单的操作时,http POST回到同一表单.