jco*_*and 61
到目前为止,我已经看到了正确的答案反复提到,几乎每个人都羞于我认为主观上的标记.
让我们从基础开始:
HTTP请求可以是任何HTTP动词,但人们最常使用的两个是GET和POST.嗯,这些是程序员最常使用的两个.如果它们在服务器上实现,其他都有一些目的.当您向服务器发送信息时,您可以通过使用URL(请求页面)或在请求正文(例如,POST,PUT,DELETE)中执行此操作.
现在你要说(我敢肯定)GET请求中的URL经常包含数据,这是正确的,但根据W3C,你不应该使用GET来改变状态,但我们经常这样做.这是一种我们都同意的黑客是实际使用,而不是黑客攻击.无论是使它成为黑客还是实际的实施细节,我都会留给您.
因此,当你发送POST的正文(现在跳过其他人,你可以从这里找出来)和表单元素时,你会发回某些元素.如何定义这些元素取决于您和您正在使用的环境.您可以在正文中使用JSON元素,或使用XML或表单字段发布到服务器.通常我们会从HTML 正文中的FORM元素发布帖子.
现在每个人都说,"哦,回发是对页面的后续请求." 但是,那不是真的.回发是指您通过POST发送数据 - >返回服务器.我这样说是因为GET请求和POST请求之间的区别在于数据是否包含在正文中(并且使用了动词,但客户端通常知道如何处理).您可以在第一次访问页面时回发到页面,实际上ASP.NET具有在库中执行此操作的工具.您当然可以将一个桌面客户端POST数据发送到服务器(想想Twitter)而不显示任何来自服务器的网页(好吧,所以推特可能不是这里用来举例的最佳概念,但我想说明你可以使用不显示网页的客户端,因此不需要请求).
所以你应该在"回发"中读到的是"我正在将数据发布回服务器进行处理".假设您最初使用GET检索页面,以向用户显示<form>具有<input>供他们交互的字段的元素,并且最后您将数据发回.但我希望你能看到它不必按顺序排列.
所以这里有一些需要考虑的事情:
如果你给用户一个页面一堆<input>S和无<form>而是有一个按钮,在javascript有线高达Concat的所有<input>与S &value-n=并将它们作为一个GET?做同样的事情,但违反了仅对请求使用GET的概念.(可能) 随后的讨论鼓励我强调GET应该没有副作用(没有更新值)
例如,你可以如何向某人发送链接到谷歌搜索.所以我们不必总是回到服务器来获取数据.
希望这可以帮助.干杯
Ian*_*cer 29
POSTBACK:ASP.NET的一种设计技术,用于隐藏有状态外观背后的Web/HTTP的真正无状态特性.这导致复杂的代码(IsPostback,...),难以理解的页面生命周期,许多不同的事件,......以及许多问题(ViewState大小,Web-farm粘性,状态服务器,浏览器警告(不使用PRG模式) ,...)
请参阅ASP.NET MVC.
Yaa*_*lis 28
请参阅MSDN上的ASP.NET页面生命周期概述,以获得有关请求到达服务器时发生的情况的一般性介绍.
PostBack是对第一个请求不是页面的任何请求.PostBack将始终响应用户操作(最常见的是Button,AutoPostBack控件或Ajax触发).
Sco*_*tie 10
ASP.Net使用一个新的概念(好吧,新的,与现在已经过时的asp相比)来保持你的asp.net控件的状态.这是什么意思?简而言之,如果您在文本框中键入内容或从下拉列表中选择下拉列表,则会在您单击按钮时记住这些值.旧的asp会强迫你编写代码来记住这些值.
如果用户遇到错误,这很有用.asp.net viewstate自动为您完成此操作,而不是程序员必须处理记住重新填充每个Web控件.它也很有用,因为现在后面的代码可以使用intellisense访问asp.net Web表单上这些控件的值.
至于发布到同一页面,是的,"提交"按钮将发布到页面后面的代码上的事件处理程序.如果需要,可以将代码中的事件处理程序重定向到另一个页面(或者向您的页面提供错误消息或者您可能需要执行的任何其他操作).
维基百科对回发的定义非常好,但我添加了以下内容: 回发是 后续 HTTP POST到表单所在的同一页面.
如果我有一个带有表单的页面,而不是让我的"提交"按钮将浏览器重定向到另一个将处理表单的页面,而是让"提交"按钮刷新当前页面(并执行一些特定步骤来验证/保存页面,大概),然后说,提交按钮据说已回发到当前页面.
回发可以是完整的(刷新整个页面),也可以是部分的(在使用AJAX的情况下).部分页面回发将仅重新呈现页面的一部分(如单个下拉列表,表格等).
| 归档时间: |
|
| 查看次数: |
168416 次 |
| 最近记录: |