无知者__

在知识的海洋中我们永远是一个无知的人!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

学习asp.net的一些未整理的笔记但很有用

Posted on 2011-03-07 13:44  旅行者1号  阅读(245)  评论(0编辑  收藏  举报


<from action = "*" method = "*">

</from>

●form表单用来向服务器提交用户输入的信息。
●动态模板生成的网页中只能有一个form表单而且这个表单的action默认是本页method默认是post,form表单中只有带有name属性

的表单元素才会被提交。但是注意请求任何网页的第一次发出的请求都是get请求。

●新建网站时的两个位置:
1.文件系统(拥有管理员的权限,适合自己开发,不适合真是环境下)
2.HTTP (HTTP协议的模式,只有公共权限很小。适合真是环境下开发)
*应用层用的都是HTTP协议而HTTP协议用的是传输层协议是面向连接的安全的TCP传输协议。
3.FTP
●method 指定发送请求的方法 非常重要
一个页面可以有n个form表单
一次请求只能提交一个form表单的数据。

●IIS 只是个调用者。

●action 指定请求的页面
非常重要 请求到达web服务器后iis根据请求扩展名区分出静态和动态页面然后做不同的处理。
①静态页面
根据请求地址(如果是form表单的请求就根据action指定的路径)到相应的路径下找到资源然后发回去,如果没有找到.客户端会显

示错误页。
②动态页面
iis会根据请求的扩展名(前提是IIS必须提前已经做好某个扩展名映射到那个类库文件上)IIS转交给对应于某个扩展名的dll类库由

dll类库把请求数据包(提交的各种参数数据)包装成一个HttpRequest对象并找到动态页面然后一系列的用动态页面生成静态页面的

工作开始。如21个管道11个页面事件等,事件已经绑定好了我们看不见,我们只需要写后台文件的事件处理方法就可以了,生成静

态页面后回发给客户端)

●为了能够在服务器操纵某个HTML标签必须给标签加一个runat ="server"的属性,这样就可以在服务器端操纵这个标记了,在服务

器端改变它的属性和元素内容,IIS是个调用者,它调用对应扩展名的dll其实这个dll也是个接口真正处理请求的是一个叫做

w3wp.exe的进程。

●加了runat ="server"属性的前台标记在后台C#处理程序中就可以根据标记的ID找到对应的标记来操纵它了。注意HTML用标记的

name属性找到标记,C#和jS程序用ID找到找到标记准确的说应该是这个控件进而对其进行操纵。

●扩展名aspx对应的dll
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll


---------------------------asp.net-html.txt-----------------------------------------------
把UI搬到WEB上就成了BS结构了。BS中的UI就是一系列网页。BS架构中客户端看到的永远是HTML。
js是一种能够在浏览器中执行的程序,用来操作html的DOM树,以改变页面。
jquery是一种js脚本库。

页面的样式用css样式来设置。
静态页面:就是一个用html写的一种页面。
动态页面:其实是用动态模板来生成静态页面。UI层永远使用的是html页所以不管请求的是什么页面服务器永远返回的是静态页面

。即使请求的是动态的页面最终也是生成静态页面返回。
网站:一系列逻辑业务相互关联的页面放在一起就是网站还包括一些图片文本音频等等文件。

asp.net:技术就是一堆类,一个动态的模板,把winfrom中的UI部分移植到网页上的技术,就是怎么用C#来做页面。

-----------------------------------URL-CSS-两种请求.txt---------------------------------------------------------
70%的业务有DB的存储过程完成
URL

DNS 域名服务器 每次输入域名后先向域名服务器发一个请求拿到ip地址再向ip地址发真正的请求。
http://www.baidu.com:80/index.html

http://   双发遵守的通讯协议。
www.baidu.com    域名方便人记忆,域名=IP。
:80     web服务器的端口。
/              web服务器的虚拟路径的根目录,对应到服务器的物理盘符的某个位置。客户看不到物理路径。
/index.html   一个资源。请求的对象。

样式 的三种定义方式
1.写到标记中
2.写在haed的类或标记中
3.写在一个文件中。

●主要的两种向服务器提交数据的方式
xmlhttprequest:异步提交客户端数据
form表单:同步提交客户端数据

凡是和web服务器交互的应用程序用的都是HTTP协议。
邮箱网银一般用HTTPS也是HTTp协议,是经过加强的。
**************************************
js操作的是标记的ID
HTMl操作的是标记的name
asp.net中进行了统一
**************************************
http规定请求的包头和包体用一个空白行隔开。
提交数据的两种方式
post
get

网站就是一堆html语言的网页源文件,浏览器是个.exe的程序,发一次请求就是把服务器上的源文件拿到后,客户端浏览器根据源

文件再把网页画出来,所以画的时候遇到图片需要再发一次请求。
name =


-----------------------20101228------------------------------
●回发:IsPostBack :两次请求同一个页面就是回发。

●数据控件
在网页上显示数据,简单的控件属性可以通过为属性赋值来完成,主要针对大量数据的绑定。
微软提供了三个。
1.dataList
2.GridView
3.Repeater 最灵活
4.table 自定义
*这些控件生成的html到了客户端都是table

●session是用于在服务器上保持数据,以供以后使用的一种机制。
内部工作机理和hashtable一样,存储键值对,取出来的永远是object类型的对象。
session就是服务器端的一个能临时存储东西的地方。

datatable和dataview的区别
dataview是datatable的快照只能看看不能操作datatable的实例。

●视图状态
视图状态分为两种,1页面上的数据称为视图状态。2.页面上控件的属性数据称为控件状态。

1当前页面的状态:当前页面上的数据也就是页面对象。实际是保持到了页的隐藏域里了。
2.在PreRenderComplete事件后有一个SaveStateComplete事件用来保存页的视图状态和控件的控件状态。
控件状态
除视图状态外,ASP.NET 还支持名为控件状态的页状态功能。页使用控件状态来保留必须在回发之间保留的控件信息,即使已为页

或某个控件禁用视图状态也是如此。控件状态与视图状态类似,也存储在一个或多个隐藏字段中。有关更多信息,请参见 ASP.NET

状态管理概述

************
页面上的所有数据都是页面类的成员,准备,加载,生成,其实都是在实例化这个页面类.
每次生成完成后SaveViewState事件要把页面类上画好的所有数据写入到response回应对象,然后卸载这个页面类。
asp.net的工作进程把写入到回应对象里的页面类的数据就这样存储到了html页中的隐藏域里带到了客户端,待到下次请求到来时在

InitComplite事件后PreLoad事件前的时间点再把上次的存储到html页cooke中视图状态还原到当前页面类的各个对应着的控件上。
因为web是无状态的,所以把页的视图状态保持到了客户端。所以一般大的数据量不易用隐藏域,因为cooke要来回传递降低速度。

视图状态也是一种保持数据的机制。视图状态永远是和自己的页面绑定在一起的。而session可以跨页面。如果确认回发时不用就把

控件事件的视图状态关掉。

缓存及缓存依赖。

------------------------------------

httpcontext 包括
cache      存储用户的公用数据
session    存储用户的个性数据
Request  
Rsopens

httpcontext a = httpcontext.current

-----------------AJAX-------------------
几项技术的综合。
a  异步
ja js
x  xmlhttprequest

xmlhttprequest
js
dhtml

dhtml 是ajax技术的基础。

传统的模式是请求响应等响应到达浏览器后会刷新整个页面而Ajax最大的特点是实现局部的刷新而不是整个页面的刷新。

浏览器的接收到回应后的工作流程:
浏览器拿到字节流后,按照包头的编码转换为字符串也就是html文档,然后解析html文档解析为一个dom树模型接着浏览器开始显示

dom树。

ajax:在dom树模型不动的情况下来改变dom树的节点来改变显示效果,而传统的显示方式是把整个dom重新解析一遍。

ajax:由js来调用xmlhttprequest对象进行异步请求,回应的内容也由xmlhttprequest对象接收,由js调用xmlhttprequest对象把从

服务器请求到的数据赋值到dom树的某个节点上,进而改变dom达到改变浏览器显示内容的改变,实现局部刷新。

浏览器的主线程维护dom树,而用子线程和服务器交互来修改dom树的局部。

子线程就等于异步

---------------------------------