用webserver和javascript实现无刷新效果

最进看了一篇关于ajax的文章,文章的大致意思就是通过javascript中的msxml2的组件对另外一个页面进行操作.通过post或者get的方式传不同的参数来实现不同方法的调用,在以xml的方式将数据传回给当前的页面,使当前页的信息内容得到改变。个人研究了以后觉得这个需要编写者对javascript和xml有深厚的功底才可以完成一般正常的开发。
我觉得通过ms的WebService Behavior一样可以达到ajax的效果,而且开发比较方便。
 
url: http://msdn.microsoft.com/library/default.asp?url=/workshop/author/webservice/webservice.asp

具体实现方法:
Web服务外置XML,将Web服务用作数据源,Web服务传递的内容是XML,将由Web服务返回的XML文档,以便可以将它加载到客户机上的XML分析器。数据访问组件是一个以Web服务形式实现的中间层,提供一个方法检索数据库中的数据,而且通过HTTP以标准的SOAP提供给客户机。

1.webserver服务:
None.gif using  System;
None.gif
using  System.Collections;
None.gif
using  System.ComponentModel;
None.gif
using  System.Data;
None.gif
using  System.Diagnostics;
None.gif
using  System.Web;
None.gif
using  System.Web.Services;
None.gif
None.gif
namespace  localhost
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// Service2 的摘要说明。
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class Service2 : System.Web.Services.WebService
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
public Service2()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InBlock.gif
            InitializeComponent();
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
组件设计器生成的代码#region 组件设计器生成的代码
InBlock.gif        
InBlock.gif        
//Web 服务设计器所必需的
InBlock.gif
        private IContainer components = null;
InBlock.gif                
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif        
/// 此方法的内容。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 清理所有正在使用的资源。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        protected override void Dispose( bool disposing )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if(disposing && components != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                components.Dispose();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
base.Dispose(disposing);        
ExpandedSubBlockEnd.gif        }

InBlock.gif        
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
InBlock.gif
InBlock.gif        [WebMethod]
InBlock.gif        
public int add(int a,int b)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return a+b;
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        [WebMethod]
InBlock.gif        
public string ShwoTime()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return DateTime.Now.ToLongTimeString();
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif


  2.表示层:
  (1)使用Web服务行为组件(webservices.htc),将其用于IE中来处理Web服务。关于webservices.htc的介绍及下载可到 http://msdn.microsoft.com/workshop/author/webservice/webservice.asp
None.gif < div  id ="service"  style ="BEHAVIOR: url(webservice.htc)" ></ div >

  (2)用javascript声明一个全局变量保存MSXML分析起实例,创建一个myService函数打开Web服务 一旦webservice.htc行为插入页面,就可以使用它来访问Web服务
     
None.gif    < body  onload ="myService()" >

None.gif < HTML >
None.gif    
< head >
ExpandedBlockStart.gifContractedBlock.gif        
< script  language ="javascript" > dot.gif
InBlock.gif 
function myService()
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif{
InBlock.gif   service.useService("
http://localhost/Service2.asmx?WSDL","svrShwoTime"); 
InBlock.gif   
var iCallID = service.svrShwoTime.callService(myShwoTime,"ShwoTime");
InBlock.gif  

ExpandedSubBlockEnd.gif
 }

InBlock.gif  
function myAdd()
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif{
InBlock.gif   
var iCallID2 = service.svrShwoTime.callService(Add,"add",Text1.value,Text2.value);
ExpandedSubBlockEnd.gif  }

InBlock.gif 
function myShwoTime(result)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif{
InBlock.gif   
//显示时间
InBlock.gif
   displayTime.innerHTML = result.value;
ExpandedSubBlockEnd.gif }
 
InBlock.gif  
function Add(result)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif{
InBlock.gif   

InBlock.gif
   
InBlock.gif   Text3.value 
= result.value;
ExpandedSubBlockEnd.gif }
 
InBlock.gif 
ExpandedBlockEnd.gif        
</ script >
None.gif    
</ head >
None.gif    
< Body  onload ="js:setInterval(myService,100);" >
None.gif     

None.gif        <div 
id ="displayTime" ></ div >
None.gif        
< FONT  face ="宋体" ></ FONT >< FONT  face ="宋体" ></ FONT >
None.gif        
< table  width ="100%"  border ="0" >
None.gif            
< tr >
None.gif                
< td  style ="WIDTH: 335px" >< FONT  face ="宋体" >< INPUT  id ="Text1"  style ="WIDTH: 160px; HEIGHT: 22px"  type ="text"  size ="21"  name ="Text1" > + < INPUT  id ="Text2"  type ="text"  name ="Text2" > = </ FONT ></ td >
None.gif                
< td >< FONT  face ="宋体" >< INPUT  id ="Text3"  type ="text"  name ="Text3" ></ FONT ></ td >
None.gif            
</ tr >
None.gif            
< tr >
None.gif                
< td  style ="WIDTH: 335px" >< FONT  face ="宋体" ></ FONT ></ td >
None.gif                
< td >< FONT  face ="宋体" >< INPUT  id ="Button1"  type ="button"  value ="Button"  onclick ="js:myService1();"  name ="Button1" ></ FONT ></ td >
None.gif            
</ tr >
None.gif        
</ table >
None.gif        
< div  id ="service"  style ="BEHAVIOR: url(webservice.htc)" ></ div >   <!-- 这是引入javascript库 -->
None.gif    
</ Body >
None.gif
</ HTML >


使用行为的useService方法打开Web Service,通过加载服务器的WSDL文档做到用户能够通过WSDL追加到查询字符串来制定它,同时提供一个“友好名称”,将在代码中使用它来引用Web服务 
  
None.gif var  iCallID2  =  service.svrShwoTime.callService(Add, " add " ,Text1.value,Text2.value);


指定add方法所需的参数:事件处理程序名,调用的方法名以及此方法的参数.  

 

转载于:https://www.cnblogs.com/wulei8899/archive/2005/07/05/186514.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值