什么是AJAX?
-
AJAX:”Asynchronous JavaScript and XML”
-
中文意思:异步JavaScript和XML。
-
指一种创建交互式网页应用的网页开发技术。
-
AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词。
-
不是指一种单一的技术,而是有机地利用了一系列相关的技术:
-
web标准( Standards-Based Presentation )XHTML+CSS的表示,
-
使用 DOM( Document Object Model )进行动态显示及交互,
-
使用 XML 和 XSLT 进行数据交换及相关操作,
-
使用 XMLHttpRequest 进行异步数据查询、检索.
-
简单理解为:JavaScript + XMLHttpRequest + CSS +服务器端 的集合.
AJAX优点
readyState属性
readyState属性指出了XMLHttpRequest对象在发送/接收数据过程中所处的几个状态。XMLHttpRequest对象会经历5种不同的状态。
-
0:未初始化。对象已经创建,但还未初始化,即还没调用open方法;
-
1:已打开。对象已经创建并初始化,但还未调用send方法;
-
2:已发送。已经调用send 方法,但该对象正在等待状态码和头的返回;
-
3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
-
4:已加载。所有数据接收完毕
JSON 是什么?
-
JSON 的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式。JSON 与 XML 具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是 JSON 比 XML 数据传输的性能要高出很多。JSON 完全独立与编程语言,使用文本格式保存。
-
-
那么如何使用 JSON 来作为 GWT 的数据传递格式呢?
-
第一,引用 HTTP 和 JSON 支持。
-
第二,在客户端创建 JSON 数据,提交到服务器
-
第三,在服务器上重写数据格式解析的代码,使之支持 JSON 格式的数据
-
第四,在服务器上组织 JSON 格式的数据,返回给客户端。
-
第五,客户端解析服务器传回的 JSON 数据,正确的显示 引用 HTTP 和 JSON 支持
服务端基本属性件介绍
-
(1)ClientID,控件在客户端的Id,控件在服务端的Id不一定等于客户端HTML中的Id,比如说在ListView等控件的模板中。因此如果要在客户端通过JavaScript Dom、JQuery的getElementById、$(“#id”)来操作控件的话最好不要直接写服务端Id,而是$(‘#<%=txt1.ClientID%>’)。用JQuery事件设置鼠标移到控件上和从控件移开的不同样式。在用户控件中就可以看到ClientID和id的不同。UserControl、母版、ListView。推荐永远用ClientID
-
(2)Visible 属性, 控件是否可见,如果Visible=False是不会转到HTML中的,这和在HTML中给元素style.display='none'效果是不一样的。
-
(3)CssClass 属性,控件的样式名,就是HTML中控件的class属性。也可以单独修改BackColor、BorderStyle等属性,但是不建议这么做,因为会生成很多的内联样式,生成html尺寸大,不便于统一的修改。
-
(4)Attributes,用来设置获取控件的额外属性。和Dom中的setAttribute()、getAttribute()是一样的。Button1.Attributes[“a1”] = “2.jpg”; HTML 事件在服务端看来也是属性 Button1.Attributes[“onmouseover”] = “alert(‘hello’)”;
服务端基本控件1
-
1、Label控件。Text属性为显示文本。AssociatedControlID属性用来关联一个控件,如果为空的话会展示为一个<Span>,如果指定为一个控件的id,则会展示为一个HTML中的<Label>并且将for属性设置为被关联控件的ClientId。
-
2、Literal控件也是展示一段文本,但是Literal控件不会渲染任何额外的标签,就是将Text属性的值展示出来而已。
-
3、TextBox控件,文本框控件。TextMode属性取值SingleLine、MultiLine、Password,分别渲染为input(type=text)、textarea和input(type=password)。当AutoPostBack属性为true的时候,用户焦点离开TextBox就会造成页面Post,实现原理就是讲ASP.Net原理时的AutoPostBack。TextChanged事件(需要AutoPostBack=true才会修改后触发,否则是页面提交才触发),文本发生变化的时候事件触发。(以Post方式提交表单)ASP.Net中要提交表单的时候最好调用__doPostBack方法。
-
4、RadioButton控件,对应为input(type=radio),通过GroupName属性进行分组
-
5、Button控件。OnClientClick属性,当用户点击按钮的时候在浏览器端执行的代码,注意OnClientClick是字符串属性,写的代码是JavaScript代码,运行在浏览器端。<asp:Button ID="btnDel" runat="server" onclientclick="return confirm('真的要删除吗?')" Text="删除" />
-
6、LinkButton,用法和Button差不多,区别就是Button控件渲染为按钮,而LinkButton渲染为超链接。不要用LinkButton来实现普通的超链接,因为LinkButton的href为一段javascript代码,进行的是表单的Post,无法“在新窗口中打开连接”。和讲“行删除”那个例子中href为javascript的超链接原理一样。一般用Button就行,只有用户要求“长成超链接好”采用LinkButton,就是一个在浏览器中渲染成超链接,服务端当成按钮用的东西。
-
HyperLink:IsPostBack=False,没有提交表单内容,没有OnClick事件。
-
7、ImageButton控件也和Button差不多,只不过是显示为图片,渲染为input(type=image)
-
8、Button、LinkButton、ImageButton等控件都有CommandName、CommandArgument两个属性和Command事件,可以让多个按钮控件共享一个Command事件处理函数,通过读取事件对象e的CommandName、CommandArgument两个属性读取被点击按钮上设置的这两个参数来执行不同的操作。例子:编辑、删除多行数据。这种用法在ListView等控件中用的最多。