IsPostback的原理
ispostback:就是判断页面是首次加载的,还是数据回发(有get或者post请求过的)后的页面。上代码吧,直观点。
1.asp.net页面

<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
</body>


protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("这是回发后的页面!"); //点击button1控件后出现这个
}
else
{
Response.Write("这是首次加载的页面!"); //第一次预览出现这个
}
}

2.html页面
(1)由于是纯粹的html页面,即便点击提交也无法,回发数据,也就是html页面无法获取回发过来的值。所以ispostback为false。
<form action="WebForm1.aspx" method="post">
<input id="Submit1" type="submit" value="submit" />
</form>

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("这是回发后的页面!");
}
else
{
Response.Write("这是首次加载的页面!"); //第一次预览出现这个,点击submit控件后还出现这个
}
}

(2)这里加了一个隐藏的viewstate,回发过来的数据存放在viewstate,完成了数据回发,ispostback的值也就为true。如果你疑惑如果下次还想要首次加载的数据怎么办,我告诉你,下次读取数据直接从viewstate中读取,不用再次发出请求。
<form action="WebForm1.aspx" method="post">
<input type="hidden" name="__viewstate" />
<input id="Submit1" type="submit" value="submit" />
</form>

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("这是回发后的页面!"); //点击submit控件后又出现这个。
}
else
{
Response.Write("这是首次加载的页面!"); //第一次预览出现这个。
}
}

小结:其是asp.net页面中也有一个隐藏的viewstate字段,通过在页面上查看源代码就能看出来,一般为了减少服务器的压力,我们通常会把viewstate禁用掉,那么将不会用到ispostback判断是否是数据回发过的页面,那将每次执行以下后台代码,如果是读取数据库中的数据,那么也将每次都要读取一下,这里你可能会担心数据库的压力过大,这里我们还有另外的解决办法,而并非使用viewstate,那就是使用缓存技术解决这里的问题。
IsPostback的原理的更多相关文章
- isPostback 的原理及作用(很easy)
1.IsPostBack用来推断表单是否是回发. (不是第一次请求),是点击表单的提交button回发过来的.是否是回发与get请求还是Post请求无关.可是普通情况下回发都是Post请求. 一般Ge ...
- 【深入ASP.NET原理系列】--ASP.NET页面生命周期
前言 ASP.NET页面运行时候,页面将经历一个生命周期,在生命周期中将执行一系列的处理步骤.包括初始化.实例化控件.还原和维护状态.运行时间处理程序代码以及进行呈现.熟悉页面生命周期非常重要,这样我 ...
- asp.net编程基础
vs常用两个快捷键:打开即时窗口 ctrl+alt+i : 快速代码格式排版:ctrl+k+d 一:Page:页面 Page.IsPostBack 判断页面是否第一次加载用 if(Page.IsPo ...
- .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器
1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...
- isPostBack原理
从 到输入用户名,点击提交按钮 这个过程就叫做postback(是两个不同的状态) 利用ispostback原理,实现是否第一次进入处理程序(上一个用用户名判断的不好,会导致在用户名空的情况下 ...
- jsonp协议原理深度解析
前言 今天在开发联调的过程中,需要跨域的获取数据,因为使用的jquery,当然使用dataType:'jsonp'就能够很easy的解决了.但是因为当时后端没有支持jsonp来访问,后来他在实现这个功 ...
- Asp.Net原理Version3.0_页面声明周期
Asp.Net原理Version1.0 Asp.Net原理Version2.0 相关源码 页面的Process方法 // System.Web.UI.Page pr ...
- ViewState原理
1.IsPostBack原理 1.1 所有的服务端控件,都必须放在runat="server"的表单里面,runat="server"的表单会生成__VIEWS ...
- SQL注入原理讲解,很不错!
SQL注入原理讲解,很不错! 原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html 1.1.1 摘要 日前,国内最大的程序员 ...
随机推荐
- webstorm配置scss自动编译路径
webstorm支持sass的同步编译,也就是即写即编译,并且可以指定编译后的css的目录. 本文使用的webstorm为8.0版本 scss安装:http://www.w3cplus.com/sas ...
- IIS服务的部署
1.安装 C:\Windows\Microsoft.NET\Framework\v4.0.30319 aspnet_regiis -i2.添加应用程序,选择Asp.net4.03.应用目录 IIS_U ...
- 1.2 容器-container
1) * 容器是用于存放数据的类模板,实例化后就是容器类.用容器定义的对象称为容器对象. **类型相同的容器可以进行比较运算 2)分类 容器可分为顺序容器和关联容器两大类. *:顺序容器 元素的位置 ...
- GBDT原理实例演示 1
考虑一个简单的例子来演示GBDT算法原理 下面是一个二分类问题,1表示可以考虑的相亲对象,0表示不考虑的相亲对象 特征维度有3个维度,分别对象 身高,金钱,颜值 cat dating.txt ...
- mxnet环境搭建随记
安装mxnet还是遇到不少麻烦事,现在简单记一下,挖个坑,后续详细补充,打算写一下我的mxnet探索之旅. 更新: 具体安装mxnet,cuda,opencv过程已经补坑——点击进入 不知道为什么,在 ...
- ExcelReport第三篇:扩展元素格式化器
导航 目 录:基于NPOI的报表引擎——ExcelReport 上一篇:ExcelReport源码解析 概述 上篇中已介绍了ExcelRepor的架构,本篇将通过例子讲述如何扩展元素格式化器以满足 ...
- sdut1598 周游列国【简单模拟题】
周游列国 Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdutoj/p ...
- 如何观察JS的事件队列的执行划分
也就是说,不同的操作函数,操作符,JS将其放入事件队列是不一样的... 比如: 外部函数和内部函数,就是分两次放入事件循环的尾端的. 比如,多个操作符组成的链式操作,也有可能是放不同的操作批次进入事件 ...
- [LeetCode] Ugly Number II
Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors ...
- HTML - DOCTYPE
HTML - DOCTYPE HTML 5 doctype <!DOCTYPE html> HTML4.01 Based on SGML. so the browser need the ...