[翻译]asp.net ajax xml-script教程(一)

Docker Compose 部署 WordPress:环境一致性与工程化实践 WordPress 是全球最流行的开源内容管理系统,其本地开发与跨环境部署长期面临 PHP 版本差异、MySQL 认证兼容性、Nginx 重写规则失配等典型问题。Docker Compose 通过声明式服务编排,将运行时依赖(如 mysql:8.0、php:8.2-apache、nginx:alpine)和网络拓扑固化为可复现的配置文件,从根本上解决环境不一致与协作低效难题。它不仅支撑快速搭建开发环境,更可通过 healthcheck、volumes 权限控制、entrypoint 健康等待等机制,实现从单 阅读详情
原文地址: http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part1.aspx


asp.net ajax xml-script教程(一)


原文发布日期:2006.12.01
作者: Alessandro Gallo
翻译: webabcd


概述
asp.net ajaxt提供了一种通过使用声明程序模型来实例化客户端类型的方法。下面的代码给出了一个最简单的例子,用来在页面加载完毕后显示一段信息。
<% @ Page  %>   
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>   
< html  xmlns ="http://www.w3.org/1999/xhtml"   >  
  
< head  runat ="server" >      
    
< title > Hello XML-script </ title >  
  
</ head >  
  
< body >      
  
< form  id ="form1"  

runat
="server" >      
  
< asp:ScriptManager  ID ="TheScriptManager"  runat ="server" >          
   
< Scripts >              
    
<asp:ScriptReference 
      Assembly
="Microsoft.Web.Preview"
Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewScript.js" />            
   
</ Scripts >      
  
</ asp:ScriptManager >       
  
< script  type ="text/xml-script" >          
    
<page xmlns="http://schemas.microsoft.com/xml-script/2005">
      
<components>             
        
<application load="page_load" />          
      
</components>         
    
</page>     
  
</ script >       
  
< script  type ="text/javascript" >      
  
<!--         
  
function page_load(sender, e) 
  
{             
    alert(
"Hello World!");         
  }
     
  
//-->     
  
</ script >      
  
</ form >  
  
</ body >  
</ html >  

注意,如果要使用xml-script特性的话,你需要在微软的ajax站点下载 Futures CTP package,然后引用PreviewScript.js这个文件,该文件包含在Microsoft.Web.Preview程序集中。

声明代码总是要内嵌到一个脚本标记下,这个脚本标记的type属性为text/xml-script。这段声明代码并不难理解。我们这里有一个封装了components元素的page根元素,它是一般xml-script的标准写法。

在components元素下有一个application节点,设置其load属性的值为一段javascript代码的函数名称。这个load属性被解析成一个事件名称,它的值指向一个客户端函数,该客户端函数将被增加到一个事件处理列表中。因为application元素被映射到了Sys.Application实例,所以当Sys.Application触发了它的load事件的时候,page_load()将被调用。

这是如何实现的呢?声明代码是以xml元素和方法之间的映射为基础的,属性和事件是通过asp.net ajax类来被使用的。这种映射在每一个有类型描述符的类中都存在,而每一个有类型描述符的类都可以在声明代码中被使用。


类型描述符
类型描述符是一个对象,它用来描述类的属性,方法和时间。每个想要提供类型描述符的类都必须实现ITypeDescriptorProvider接口,该接口定义了一个被称做getDescriptor()的方法。这个方法必须返回一个关联到类的类型描述符。ITypeDescriptorProvider接口的原型如下:
Sys.Preview.ITypeDescriptorProvider.prototype  =   {     
  getDescriptor: Sys$Preview$ITypeDescriptorProvider$getDescriptor 
}

另一个实现类型描述符的方法是给类增加描述符扩展。如果我们看一下PreviewScript.js文件(在Sys.Preview命名空间下),会发现一些通过这个方法扩展出来的类型描述符。例如,接下来的代码出示了Sys.Preview.Button类下的类型描述符。
Sys.Preview.UI.Button.descriptor  =   {     
  properties: [ 
{ name: 'command', type: String },                  
                
{ name: 'argument', type: String } ],     
  events: [ 
{ name: 'click' } ] 
}
 

一个类型描述符就是一个对象(用“,”来分隔开每个“属性-值”对比如{ name: "value" }就是一个“属性-值”对),类型描述符的包含属性如下:
    ·properties:一个属性描述符的数组
    ·events:一个事件描述符的数组
    ·methods:一个方法描述符的数组

每一个数组都包含着一组描述符,此时这些描述符的作用是用来描述一个详细的属性、事件或方法的。例如,让我们看一下事件数组中包含的描述符。
{ name : 'click' }

这个简单的描述符告诉了我们,Button类有一个名称为click的事件。属性数组中包含两个描述符。
{ name: 'command', type: String }  
{ name: 'argument', type: String }

第一个描述符描述了一个被称做command的属性,类型是string型。第二个描述符告诉我们Button类有一个string类型的属性,被称做argument。

类型描述符能够反映出客户端类型,它从xml-script中被独立出来。但是,xml-script解析器会在声明代码里把属性、方法和事件映射到xml元素中。

通过查看这个类型描述符,我们即使不了解xml-script是如何工作的,也可以写一段创建类型实体所需的声明代码。用Button类的类型描述符比较一下下面的这段xml
< button  id ="myButton"  command ="save"  click ="myButton_click"   />

在上面这段xml里,类的名字(Sys.Preview.UI.Button)被映射到了元素的名字(button),属性都是一一对应的,而且事件也被映射成了属性,这个事件属性的值被设置成一个javascript函数名,由这个函数来负责处理click事件。

它的id属性是从哪来的呢?Button类继承自Sys.Component,它id属性也是继承自这个类。如果你在PreviewScript.js文件中搜索Sys.Component的类型描述符,你就会发现有一个id属性的类型描述符。
Sys.Component.descriptor  =   {     
  properties: [ 
{name: 'dataContext', type: Object},                  
                
{name: 'id', type: String},
                
{name: 'isInitialized', type: Boolean, readOnly: true},
                
{name: 'isUpdating', type: Boolean, readOnly: true} ],     
  events: [ 
{name: 'propertyChanged'} ] 
}
 

描述一个方法也需要提供方法参数的类型描述符。下面的代码出示了从Sys.Preview.Net.ServiceMethodRequest类中提出来的方法属性。
methods: [  {name: 'invoke', params: [ {name: 'userContext', type: Object} ] }  ]

在这个例子中,这个类暴露了一个被称做invoke的方法(通过方法描述符的name属性得知)。这个方法接收一个被称做userContext的参数,这个参数的类型是Object。参数在params属性中被描述,每一个参数都有相关的参数描述符。


结论
在这篇教程里,我们看到了在asp.net页中包含声明代码的基础示例。然后我们介绍了类型描述符,并且知道如何看懂它们。类型描述符为客户端类型提供了了反射,它们在声明程序模型中被使用,这种声明程序模型允许使用xml语法来实例化客户端类型。

在下一篇教程里我们继续学习类型描述符和xml元素之间的映射。
保姆级教程:用Arduino+MPU6050自制寻北仪(附MEMS陀螺精度测试报告) 本文提供了一份详细的Arduino与MPU6050自制寻北仪的保姆级教程,包括硬件选型、卡尔曼滤波算法优化、地磁场补偿及真北计算等关键技术。通过实测数据展示了MEMS陀螺仪在民用领域的高精度性能,帮助读者低成本实现1°以内的寻北精度。 阅读详情

相关推荐

Playwright自动化测试实战:攻克日历时间控件三大策略与Java实现

在Web自动化测试领域,元素定位与交互模拟是核心技术基础,其原理在于通过程序精确识别并操作页面中的DOM元素,以模拟真实用户行为。这项技术的核心价值在于提升测试效率、确保交互逻辑的覆盖度与可靠性,广泛应用于电商、金融、OA等系统的功能验证。日历时间控件作为典型的复杂交互组件,常涉及动态弹出层、多级导航与状态同步,是自动化测试中的常见难点。本文聚焦于使用Playwright工具,针对此类控件深入剖析了三种核心解决策略:从最高效的直接赋值、到全面模拟用户交互的主流方法,再到利用组件特性的混合定位方案,并结合Ja

weixin_28835551的博客 311

利用Asp.net Ajax异步获取xml文档内容

Ajax原意本是让人利用异步获取XML内容,以实现无刷新的网页效果   asp.net ajax已将底层内容封装   实现起来远比自写xmlhttp来的方便,至少浏览器兼容方面要强得很多   下面以一个www.asp.net的示例说明一下利用microsoft ajax library来简单异步获取xml文档的方法         // 返回XML的Web 请求   function OnSucc

冷枫@优快云 2129

基于大模型的急性重症胰腺炎全流程预测与诊疗方案研究

本研究构建了基于大模型的急性重症胰腺炎(SAP)全流程预测与诊疗系统,实现了从术前风险评估到术后康复管理的精准诊疗闭环。通过整合临床信息、实验室检查和影像学等多源数据,模型在测试集上预测准确率达X%,AUC为X,显著优于传统评分系统。研究创新性地将预测结果应用于手术方案制定、麻醉决策、并发症防控及个性化护理,形成智能化诊疗方案。验证结果显示模型具有良好的稳定性和临床适用性,同时配套的健康教育体系提升了患者自我管理能力。尽管存在样本局限性和模型可解释性等不足,该研究为SAP的精准诊疗提供了新范式,未来可通过扩

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1114

在 ASP.NET AJAX 中使用 Web 服务

 在 ASP.NET AJAX 中使用 Web 服务 转自msdn:http://msdn.microsoft.com/zh-cn/library/bb515101.aspx# <!-- Content type: Devdiv1. Transform: orcas2mtps.xslt. -->本主题介绍如何从支持 AJAX 的 ASP.NE

cychai的专栏 1350

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

万达电影 com.wandafilm.app headers check

万达电影 安卓逆向 抓包 逆向 check

weixin_43786514的博客 1436

asp.net 中Ajax发送XML对象到服务器和服务器获取XML对象

参数xml为XML格式字符串 function editDeviceParameter(xml) { var rData; var xmlDom=new ActiveXObject("Microsoft.XMLDOM")   xmlDom.loadXML(xml) alert(xmlDom); $.ajax({ async:fal

ASP.NET 884

Xilinx FPGA平台DDR3设计保姆式教程(3)MIG IP核使用教程及DDR读写时序

干货来了,用DDR搬砖,只需要会用IP就好,Xilinx官方YYDS! ----------------------------------------------------------------------------------------------------------------- 汇总篇: Xilinx平台DDR3设计保姆式教程(汇总篇)——看这一篇就够了 ----------------------------------------------------------...

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 2万+

[翻译]asp.net ajax xml-script教程(四)

原文地址:http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part4.aspxasp.net ajax xml-script教程(四)原文发布日期:2007.01.10作者:Alessandro Gallo翻译:webabcd介绍我们已经看过了第二部分(译者注:中文在这里)和第三部分(译者注:中文在这里)的教程,如果

webabcd的专栏 508

【传感器模块项目实战】机器人/无人驾驶常用传感器模型、选型与安装

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对机器人/无人驾驶常用传感器模型、选型与安装做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容分为位置式绝对型编码器增量式编码器打比赛的时候用过欧姆龙的增量式编码器,也用过待编码器的步进电机。【防盗标记–盒子君hzj】增量式编码器正交编码输出信号,用于识别正转和反转,通过微控制器(单片机)的片内外设硬件/软件解码(1)惯性器件-机械陀螺。

qq_35635374的博客 446

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

phmatthaus的专栏 773

[翻译]asp.net ajax xml-script教程(三)

====================================================== 注:本文源代码点此下载 ====================================================== [翻译]asp.net ajax xml-script教程(三) posted on 2007-01-27 18:43 webabcd 阅读(

javazhuanzai的专栏 412

科研级YOLOv8 Neck革新:HS-FPN模块赋能,让特征融合更高效且参数量直降100W的实战指南

在文件夹下新建HS_FPN.py,将上述和HS_FPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

FJN110的博客 151

[翻译]asp.net ajax xml-script教程(二)

原文地址:http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part2.aspx asp.net ajax xml-script教程(二)原文发布日期:2006.12.11作者:Alessandro Gallo翻译:webabcd概述在xml-script教程的第一部分(译者注:中文在这里)里我们介绍了类型描述符并且知

webabcd的专栏 429

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

asp net的Ajax学习进阶

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asp.net的Aja

gdfjhc的博客 260

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

asp.net ajax实现数据库信息发送至前台并动态生成表格

1.结果展示     2.数据库部分                   3.工程文件 4.  代码部分 (1)WebService.cs using System; using System.Collections.Generic; using System.Linq; using System.Data.SqlClient; using Syste...

qq_41015058的博客 2214

AJAX实例:ASP.NET 中的XML格式处理

在AJAX的响应数据处理中XML格式是将XML文档作为数据内容返回给客户端来进行处理。问题是服务端程序是如何将数据生成XML格式文档文件的,XML文档是如何操作里面的内容呢? 程序生成XML文档 这种方式是用 C# 程序生成一个 XML 文件,并将数据放在其中来处理。下面是几种不同的方法实现了同样的目的。 用XmlWriter类编辑数据而实现的简单示例: XmlTextWriter x...

dieya9669的博客 176

Asp.Net+Jquery.Ajax详解10-JSON和XML+写在最后

目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇): Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发) Asp.Net+Jquery.Ajax详解2-$.Load(2012.07.26发) Asp.Net+Jquery.Ajax详解3-$.get和$.post(2012.07.30发) Asp.Net+Jquery.Ajax详解4-$....

星.云计算 151

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息

原文地址:http://aspnet.4guysfromrolla.com/articles/032107-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息原文发布日期:2007.03.21作者:Scott Mitchell翻译:webabcd介绍ASP.NET 2.0

webabcd的专栏 1423

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用原文发布日期:2007.03.14作者:Scott Mitchell翻译:webabcd介绍在程序部署之前,要经历许多软件工程中定义

webabcd的专栏 1157

[翻译]开发自己的web站点管理工具(Website Administration Tool)(2)

原文地址:http://aspnet.4guysfromrolla.com/articles/053007-1.aspx [原文源码下载][翻译]开发自己的web站点管理工具(Website Administration Tool)(2)原文发布日期:2007.05.30作者:Dan Clem翻译:webabcd介绍为了方便管理用户、角色和权限设置,ASP.NET 2.0内置了Web Si

webabcd的专栏 945
上一篇: 扩展GridView控件(6) - 响应行的单击事件和双击事件
下一篇: [翻译]asp.net ajax xml-script教程(二)
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值