Ajax实战

摘要:
1: 调用WebServicenamespacePatternTest{/**//////WebService的摘要描述////[WebService(Namespace=“http://tempuri.org/“)][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile_1)][ToolboxItem(f
1:调用WebService
Ajax实战第1张namespace PatternTest
Ajax实战第2张Ajax实战第3张
Ajax实战第4张{
Ajax实战第5张Ajax实战第6张    
/**//// <summary>
Ajax实战第7张    
/// WebService 的摘要说明
Ajax实战第8张    
/// </summary>

Ajax实战第7张    [WebService(Namespace = "http://tempuri.org/")]
Ajax实战第7张    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
Ajax实战第7张    [ToolboxItem(
false)]
Ajax实战第7张    
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
Ajax实战第7张
    [System.Web.Script.Services.ScriptService]
Ajax实战第7张    
public class WebService : System.Web.Services.WebService
Ajax实战第5张Ajax实战第6张    
Ajax实战第4张{
Ajax实战第7张
Ajax实战第7张        [WebMethod]
Ajax实战第7张        
public string HelloWorld()
Ajax实战第5张Ajax实战第6张        
Ajax实战第4张{
Ajax实战第7张            
return "Hello World";
Ajax实战第8张        }

Ajax实战第8张    }

Ajax实战第27张}

Ajax实战第1张
//以下是页面
Ajax实战第1张
    <form id="form1" runat="server">
Ajax实战第1张    
<div>
Ajax实战第1张    
Ajax实战第1张        
<asp:ScriptManager ID="ScriptManager1" runat="server">
Ajax实战第1张        
<Services>
Ajax实战第1张          
<asp:ServiceReference Path="~/WebService.asmx" />
Ajax实战第1张        
</Services>
Ajax实战第1张        
</asp:ScriptManager>
Ajax实战第1张        
<div id="divUName"></div>
Ajax实战第1张        
<script>
Ajax实战第1张         Sys.Application.add_load(WriteStr);
Ajax实战第1张         function WriteStr()
Ajax实战第2张Ajax实战第3张         
Ajax实战第4张{
Ajax实战第7张           PatternTest.WebService.HelloWorld(GetStr);
Ajax实战第27张         }

Ajax实战第1张         function GetStr(r)
Ajax实战第2张Ajax实战第3张         
Ajax实战第4张{
Ajax实战第7张           $
get("divUName").innerText = r;
Ajax实战第27张         }

Ajax实战第1张        
</script>
Ajax实战第1张    
</div>
Ajax实战第1张    
</form>

2:认识UpdatePanel

Ajax实战第1张//前台代码
Ajax实战第1张
    <div>
Ajax实战第1张    
Ajax实战第1张        
<asp:ScriptManager ID="ScriptManager1" runat="server">
Ajax实战第1张        
Ajax实战第1张        
</asp:ScriptManager>
Ajax实战第1张    
Ajax实战第1张    
</div>
Ajax实战第1张    
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
Ajax实战第1张        
<ContentTemplate>
Ajax实战第1张            
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
Ajax实战第1张            
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
Ajax实战第1张        
</ContentTemplate>
Ajax实战第1张    
</asp:UpdatePanel>
Ajax实战第1张
//后台代码
Ajax实战第1张
        protected void Button1_Click(object sender, EventArgs e)
Ajax实战第2张Ajax实战第3张        
Ajax实战第4张{
Ajax实战第7张            System.Threading.Thread.Sleep(
2000);
Ajax实战第7张            TextBox1.Text 
= "赫赫";
Ajax实战第27张        }

3:测试页面生命周期
Ajax实战第1张    <script>
Ajax实战第2张Ajax实战第3张        window.onload 
= function() Ajax实战第4张{
Ajax实战第7张            alert(
"window loading");
Ajax实战第27张        }

Ajax实战第1张        Sys.Application.add_init(initIt);
Ajax实战第1张        Sys.Application.add_load(loadIt);
Ajax实战第2张Ajax实战第3张        function initIt() 
Ajax实战第4张{
Ajax实战第7张            alert(
"init");    
Ajax实战第27张        }

Ajax实战第2张Ajax实战第3张        function loadIt() 
Ajax实战第4张{
Ajax实战第7张            alert(
"load");
Ajax实战第27张        }

Ajax实战第1张    
</script>

4:认识DomElement与DomEvent
Ajax实战第1张   <script>
Ajax实战第1张    
Ajax实战第1张    
//在element节点下按照ID查找页面元素
Ajax实战第1张
    //Sys.UI.DomElement.getElementById(id,element);
Ajax实战第1张
    //获得页面元素相对于窗体或frame的位置 x,y
Ajax实战第1张
    //Sys.UI.DomElement.getLocation(element);
Ajax实战第1张
    //设置element的位置,此位置跟parent node有关,如果parent node的position设置为absolute或relative,则此位置为相对于parent node的位置,否则为相对于窗体或frame的位置
Ajax实战第1张
    //Sys.UI.DomElement.setLocation(element,X,Y);
Ajax实战第1张
    //获取元素的边界信息
Ajax实战第1张
    //var b = Sys.UI.DomElement.getBounds($get("txtUserName"));
Ajax实战第1张
    //var height = b.height;
Ajax实战第1张
    //var width = b.width;
Ajax实战第1张
    //var x = b.x;
Ajax实战第1张
    //var y = b.y;
Ajax实战第1张
    //给element添加css class
Ajax实战第1张
    //Sys.UI.DomElement.addCssClass(element,cssname);
Ajax实战第1张
    //移出元素的CSS
Ajax实战第1张
    //Sys.UI.DomElement.removeCssClass(element,css);
Ajax实战第1张
    //如果element已有该css class则移除,否则添加
Ajax实战第1张
    //Sys.UI.DomElement.toggleCssClass(element,cssname);
Ajax实战第1张
    //判断element是否有该css class
Ajax实战第1张
    //Sys.UI.DomElement.containsCssClass(element,cssname);
Ajax实战第1张
    
Ajax实战第1张    
Ajax实战第1张    
// 订阅事件处理函数,传递一个Sys.UI.DomEvent实例参数evt,通过这个evt参数,可以获得触发该事件的若干信息
Ajax实战第1张
    //Sys.UI.DomEvent.addHandler($get("btnCommit"),"mousedown",btnCommitMouseDown)
Ajax实战第1张
    //function btnCommitMouseDown(evt)
Ajax实战第1张
    //{}
Ajax实战第1张
    //移出事件
Ajax实战第1张
    //Sys.UI.DomEvent.removeHandler($get("btnCommit"),"mousedown",btnCommitMouseDown);
Ajax实战第1张
    //批量订阅事件
Ajax实战第1张
    //Sys.UI.DomEvent.addHandlers($get("btnCommit"), {"click":btnCommitClick, "keypress":btnCommitKeyPress});
Ajax实战第1张
    //function btnCommitClick(evt) {
Ajax实战第1张
    //    alert(evt.type);
Ajax实战第1张
    //}
Ajax实战第1张
    //function btnCommitKeyPress(evt) {
Ajax实战第1张
    //    alert(evt.type);
Ajax实战第1张
    //}
Ajax实战第1张
    //批量移出事件
Ajax实战第1张
    //Sys.UI.DomEvent.clearHandlers(element);
Ajax实战第1张
    
Ajax实战第2张Ajax实战第3张    
/**//*
Ajax实战第7张    (1) getType 方法
Ajax实战第7张        获得一个对象实例的类型
Ajax实战第7张    (2) getTypeName 方法
Ajax实战第7张        获得一个对象实例的类型名称
Ajax实战第7张            
Ajax实战第7张    UserLogic = function() {
Ajax实战第7张      this._userName = "guo";
Ajax实战第7张    }
Ajax实战第7张    UserLogic.prototype = {
Ajax实战第7张      get_userName : function() {
Ajax实战第7张      return this._userName;
Ajax实战第7张      }
Ajax实战第7张    };
Ajax实战第7张   
Ajax实战第7张    UserLogic.registerClass("UserLogic");
Ajax实战第7张               
Ajax实战第7张    var u = new UserLogic();
Ajax实战第7张                
Ajax实战第7张    alert(Object.getTypeName(u);
Ajax实战第7张    alert(Object.getType(u));
Ajax实战第27张    
*/

Ajax实战第1张    
Ajax实战第2张Ajax实战第3张    
/**//*
Ajax实战第7张    Array类型
Ajax实战第7张    add 方法
Ajax实战第7张        增加一个item 
Ajax实战第7张    addRange 方法 
Ajax实战第7张        增加一个Array到末尾
Ajax实战第7张    clear 方法 
Ajax实战第7张        移除所有元素
Ajax实战第7张    clone 方法 
Ajax实战第7张        将数组克隆
Ajax实战第7张    contains 方法
Ajax实战第7张        是否包含给定的item 
Ajax实战第7张    dequeue 方法 
Ajax实战第7张        从开始处移除第一个item
Ajax实战第7张    enqueue 方法
Ajax实战第7张        与add方法功能相同 
Ajax实战第7张    forEach 方法
Ajax实战第7张        遍历数组并订阅一个数组处理函数
Ajax实战第7张    indexOf 方法
Ajax实战第7张        找到与给定item匹配的元素,并返回它的索引值 
Ajax实战第7张    insert 方法
Ajax实战第7张        在数组中插入一个item 
Ajax实战第7张    parse 方法
Ajax实战第7张         将字符串转换为数组,字符串格式必须为:"['item1', 'item2', 'item3']" 
Ajax实战第7张    remove 方法
Ajax实战第7张        移除与给定item匹配的第一个元素 
Ajax实战第7张    removeAt 方法
Ajax实战第7张        移除给定索引位置的元素          
Ajax实战第7张    
Ajax实战第7张    
Ajax实战第7张    
Ajax实战第7张    var arr = ["gzj", "jww"];
Ajax实战第7张    Array.add(arr, "wen");
Ajax实战第7张    alert(arr.join(","));
Ajax实战第7张            
Ajax实战第7张    Array.addRange(arr, ["cc","dd", "cc"]);
Ajax实战第7张    alert(arr.join(","));
Ajax实战第7张            
Ajax实战第7张    Array.remove(arr, "cc");
Ajax实战第7张    alert(arr.join(","));
Ajax实战第7张    
Ajax实战第7张    var arr = ["gzj", "jww"];
Ajax实战第7张    this.prefix = "$";
Ajax实战第7张    Array.forEach(arr, addPrefix, this);
Ajax实战第7张    function addPrefix(element, index, array) {
Ajax实战第7张     alert(element);
Ajax实战第7张     alert(index);
Ajax实战第7张     alert(array.toString());
Ajax实战第7张     alert(this.prefix);
Ajax实战第7张    }
Ajax实战第7张    
Ajax实战第7张    var s = "['item1', 'item2', 'item3']";
Ajax实战第7张    var arr = Array.parse(s);
Ajax实战第7张    alert(arr.join("|"));    
Ajax实战第27张    
*/

Ajax实战第1张      
Ajax实战第1张    
</script>

5:调试

Ajax实战第1张        <asp:ScriptManager ID="ScriptManager1" runat="server">
Ajax实战第1张        
</asp:ScriptManager>
Ajax实战第1张
    <textarea id="TraceConsole" cols="50" rows="10"></textarea>
Ajax实战第1张
    <script>
Ajax实战第1张     
//将一个跟踪文本信息在TraceConsole中显示
Ajax实战第1张
     //Sys.Debug.trace("调试信息");
Ajax实战第1张
     
Ajax实战第1张     
//将一个对象的所有属性信息(包括值)在TraceConsole中显示
Ajax实战第1张
     //Sys.Debug.traceDump(Sys.UI.DomElement.getLocation($get("TraceConsole")));
Ajax实战第1张
     
Ajax实战第1张     
//也就是我们在Unit Test中常见的断言,当condition为false的时候,脚本执行会异常终止,并提示message信息,如果displayCaller为true的话,将显示断言所属的调用者(函数)
Ajax实战第1张
     //Sys.Debug.assert(1>2,"傻瓜",false);
Ajax实战第1张
     
Ajax实战第1张     
//在Error下的几个方法可以帮助我们创建几个常用的内建的异常类型
Ajax实战第1张
     //try {
Ajax实战第1张
     //  throw Error.argumentNull();
Ajax实战第1张
     //    }
Ajax实战第1张
     //catch(e) {
Ajax实战第1张
     //  Sys.Debug.traceDump(e);
Ajax实战第1张
     //}
Ajax实战第1张
     
Ajax实战第1张     
//可以通过Error的create自定义异常类型
Ajax实战第1张
     //var myError = Error.create("myError", {name: " xxx", desc : "my cc"});
Ajax实战第1张
     //try {
Ajax实战第1张
     //    throw myError;
Ajax实战第1张
     //}
Ajax实战第1张
     //catch(e) {
Ajax实战第1张
     //    Sys.Debug.traceDump(e);
Ajax实战第1张
     //}     
Ajax实战第1张
    </script>

 6:面向对象

Ajax实战第1张//脚本
Ajax实战第1张
Type.registerNamespace("Haixia");
Ajax实战第1张
Ajax实战第2张Ajax实战第3张Haixia.Person 
= function(name) Ajax实战第4张{
Ajax实战第7张    
this._name = name;
Ajax实战第27张}

Ajax实战第2张Ajax实战第3张Haixia.Person.prototype 
= Ajax实战第4张{
Ajax实战第5张Ajax实战第6张    get_name : 
function() Ajax实战第4张{
Ajax实战第7张        
return this._name;
Ajax实战第8张    }
,
Ajax实战第5张Ajax实战第6张    set_name : 
function(name) Ajax实战第4张{
Ajax实战第7张        
this._name = name;
Ajax实战第8张    }
,
Ajax实战第5张Ajax实战第6张    sayHello : 
function() Ajax实战第4张{
Ajax实战第7张        alert(
'I am a person, my name is ' + this._name);
Ajax实战第8张    }

Ajax实战第27张}

Ajax实战第1张Haixia.Person.registerClass(
"Haixia.Person");
Ajax实战第1张
Ajax实战第1张
Ajax实战第1张
Ajax实战第1张
//两个步骤实现继承:
Ajax实战第1张//
    1) 子类构造函数中调用 initializeBase方法,第一个param为关键字this,第二个参数为构造函数参数组成的Array
Ajax实战第1张//
    2) 类代码的末尾调用 registerClass方法,标明父类
Ajax实战第2张Ajax实战第3张
Haixia.Student = function(name) Ajax实战第4张{
Ajax实战第7张    Haixia.Student.initializeBase(
this, [name]);
Ajax实战第27张}

Ajax实战第1张
//重写父类方法
Ajax实战第2张Ajax实战第3张
Haixia.Student.prototype = Ajax实战第4张{
Ajax实战第5张Ajax实战第6张    sayHello : 
function() Ajax实战第4张{
Ajax实战第7张        alert(
'I am a student, my name is ' + this._name);
Ajax实战第8张    }

Ajax实战第27张}

Ajax实战第1张
//调用一下父类的sayHello方法,然后再接着子类自己的逻辑
Ajax实战第2张Ajax实战第3张
Haixia.Student.prototype = Ajax实战第4张{
Ajax实战第5张Ajax实战第6张      sayHello : 
function() Ajax实战第4张{
Ajax实战第7张          Haixia.Student.callBaseMethod(
this'sayHello');
Ajax实战第7张          alert(
'actually I am a student');
Ajax实战第8张      }
,
Ajax实战第5张Ajax实战第6张      walk : 
function() Ajax实战第4张{
Ajax实战第7张          alert(
'I am walking');
Ajax实战第8张      }

Ajax实战第27张}
//实现步骤:调用callBaseMethod方法,第一参数:this关键字, 第二个参数:要调用的父类的方法名,第三个参数:可选,如果父类的这个方法有参数,则为参数列表组成的Array   
Ajax实战第1张

Ajax实战第1张
Ajax实战第1张
//定义接口
Ajax实战第2张Ajax实战第3张
Haixia.IWalkable = function() Ajax实战第4张{
Ajax实战第7张    
throw Error.notImplemented();
Ajax实战第27张}

Ajax实战第2张Ajax实战第3张Haixia.IWalkable.prototype 
= Ajax实战第4张{
Ajax实战第5张Ajax实战第6张    walk : 
function() Ajax实战第4张{
Ajax实战第7张        
throw Error.notImplemented();
Ajax实战第8张    }

Ajax实战第27张}

Ajax实战第1张Haixia.IWalkable.registerInterface(
"Tristan.IWalkable");// 1. 方法中都抛异常,避免接口被实例化  2.调用registerInterface方法
Ajax实战第1张

Ajax实战第1张
//子类实现接口
Ajax实战第1张
Haixia.Student.registerClass("Haixia.Student", Haixia.Person, Haixia.IWalkable);//标明Student类实现Tristan.IWalkable接口,如果要实现多个接口,那么继续往后加参数
Ajax实战第1张

Ajax实战第1张
//不实现接口
Ajax实战第1张
Haixia.Student.registerClass("Haixia.Student", Haixia.Person);
Ajax实战第1张
Ajax实战第1张
//前台调用
Ajax实战第1张
        <asp:ScriptManager ID="ScriptManager1" runat="server">
Ajax实战第1张        
<Scripts>
Ajax实战第1张         
<asp:ScriptReference Path="~/Person.js" />
Ajax实战第1张
        </Scripts>
Ajax实战第1张
        </asp:ScriptManager>
Ajax实战第1张
    <script>
Ajax实战第1张     
//调用对象
Ajax实战第1张
     //var p = new Haixia.Person("liang");
Ajax实战第1张
     //p.sayHello();
Ajax实战第1张
     
Ajax实战第1张     
var p = new Haixia.Student("liang");
Ajax实战第1张     p.sayHello();
Ajax实战第1张    
</script>

7:枚举

Ajax实战第1张        <asp:ScriptManager ID="ScriptManager1" runat="server">
Ajax实战第1张        
</asp:ScriptManager>
Ajax实战第1张
    <script>
Ajax实战第1张     Type.registerNamespace(
"Haixia");
Ajax实战第1张     
Ajax实战第2张Ajax实战第3张     Haixia.Nationality 
= function() Ajax实战第4张{
Ajax实战第7张         
throw Error.notImplemented();
Ajax实战第27张     }

Ajax实战第1张     
Ajax实战第2张Ajax实战第3张     Haixia.Nationality.prototype 
= Ajax实战第4张{
Ajax实战第7张         China : 
1,
Ajax实战第7张         USA : 
2,
Ajax实战第7张         UK : 
3
Ajax实战第27张     }

Ajax实战第1张     
Ajax实战第1张     Haixia.Nationality.registerEnum(
"Haixia.Nationality");
Ajax实战第1张     Sys.Application.notifyScriptLoaded();
Ajax实战第1张     
Ajax实战第2张Ajax实战第3张     
/**//*
Ajax实战第7张     1) 定义一个名为 Tristan.Nationality的函数
Ajax实战第7张     2) 为避免被实例化,在函数被调用的时候抛出 Error.notImplemented()异常
Ajax实战第7张     3) 枚举项定义在prototype里,枚举的value必须为int型
Ajax实战第7张     4) 通过调用 Tristan.Nationality.registerEnum方法注册枚举  
Ajax实战第27张     
*/

Ajax实战第1张     
Ajax实战第1张     
var nationality = Haixia.Nationality.USA;
Ajax实战第1张     Sys.Debug.trace(nationality);
Ajax实战第1张     
//call toString() method to get the enum key
Ajax实战第1张
     Sys.Debug.trace(Tristan.Nationality.toString(nationality));
Ajax实战第1张     Sys.Debug.trace(Tristan.Nationality.toString(
3));
Ajax实战第1张     
//call parse() method to get the enum value
Ajax实战第1张
     Sys.Debug.trace(Tristan.Nationality.parse("China"));
Ajax实战第1张     
Ajax实战第2张Ajax实战第3张     
/**//*
Ajax实战第7张     调用toString()方法,接受一个value,可以取得对应的枚举项的key
Ajax实战第7张     调用parse()方法,接受key,可以取得对应的枚举项的value,key参数是大小写敏感的
Ajax实战第27张     
*/

Ajax实战第1张     
Ajax实战第2张Ajax实战第3张     
/**//*
Ajax实战第7张     2
Ajax实战第7张     USA
Ajax实战第7张     UK
Ajax实战第7张     1
Ajax实战第27张     
*/

Ajax实战第1张     
</script>

免责声明:文章转载自《Ajax实战》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c# url自动解码解决方案【转】Linux下socket keep alive讲解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

前端应该知道的Web Components

前端组件化的痛点 在前端组件化横行的今天,确实极大的提升了开发效率。不过有一个问题不得不被重视,拟引入的这些html、css、js代码有可能对你的其他代码造成影响。虽然我们可以通过命名空间、闭包等一系列措施来加以防备,不过还是存在这些隐患。为了解决这些问题,有一个基本大家遗忘的技术还是可以了解一下的,那就是Web Components。 Web Compo...

element UI 动态设置菜单栏的折叠与展开

1、操作按钮 <el-container> <el-aside :width="isCollapse ? '64px' : '170px'"> <div :class="toggleButton" @click="togleCollapse"> <img src="h...

asp 获取url 返回值 和 对json 返回值的处理

1 Function GetHttpPage(HttpUrl,endoce) 2 If endoce = "" Then endoce = "GB2312" 3 If IsNull(HttpUrl)=True Or Len(HttpUrl)<18 Or HttpUrl="$False$"Then 4 GetHttpPage="$False$"...

解决Windows server 2012 R2 系统使用IIS8浏览Asp程序出现"An error occurred on the server when processing the URL"错误

进入IIS并将ASP里的“Send Error To Browser”设置为True后点击Appley保存即可 原因是IIS里的Asp设置禁用上当错误信息发送给浏览器,只要启用即可 如果没有Asp选项则需要在IIS里安装ASP(IIS8)     参考:IIS7中出现An error occurred on the server when proc...

element ui 的 element-tree文字显示不全的问题

在elemtn-tree 树展示的时候外面设置了固定宽度,超出的文字会隐藏,认真查看过各个嵌套节点并没有发现超出隐藏的设置。这就比较尴尬。  解决方案一、给超出的文件加上滑块(缺点不够美观,如果连续都超出的话就看着比较费劲) element 树部分的代码! <el-tree     :data="data" show-...

bxSlider使用

占个坑,有空仔细研究下。 官网:http://bxslider.com/ 优点: 1.完全响应-将适应任何设备2.水平,垂直和褪色模式3.它可以包括图片,视频,或HTML内容4.先进的触摸/刷卡支持内置5.使用css滑动动画(本地硬件加速!)6.全回调函数和公共方法7.小文件大小,完全主题,简单实现8.浏览器:Firefox,Chrome,Safari支持...