




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附件5:本科生毕业论文(设计)外文资料译文论文题目: 基于网络的通用考务系统 . 网上报名子系统 .学生姓名: 余 卉 年级(学号): 00121001 .二级学院: 信息工程学院 专业:计算机科学与技术.指导教师: 陈翔、詹国华 职称: 助教、教授 .填表日期: 2004 年 2 月 20 日杭 州 师 范 学 院 教 务 处 制外文资料翻译(不少于4000外文印刷字符)1所译外文资料:作者:James Musson书名(或论文题目):Improving String Handling Performance in ASP Applications出 版 社(或刊物名称):/library/default.asp?url=/library/en-us/dnasp/html/aspstrcatn.asp出版时间(或刊号):March 2003所译页码:2译成中文: 在ASP 应用过程中改进串处理技术性能James Musson Developer Services, Microsoft UKMarch 2003Applies to:Microsoft Active Server PagesMicrosoft Visual Basic摘要: 大多数活跃的服务器页(ASP)应用依赖串联建立HTML 格式化的数据然后被用户使用。本文对各种创造HTML 数据流的方法进行了比较,其中有一些在特定的情况下有更好的性能。ASP 和Visual Basic编程设计的方法被合理采用了。 (11打印页)绪论开发者编写ASP 页,其实是在创造一串格式化正文通过ASP提供给网络客户。你能使用多中不同的方法创造该正文,但是你所选择的方法网络应用的性能和可测量性有很大影响。在帮助用户协调他们Web 应用性能的许多场合中,我已经发现主要的获胜因素是那个改变HTML数据流的方式。在本文,我将展示一些普通的技术并且测试他们对简单的ASP页的性能的影响。ASP 设计很多ASP开发者已经遵循好的软件设计原则并且模块化他们的代码。这种设计通常采取用某一页的部分离散的功能模块组成新页的形式。线性输出由这些功能实现,通常是HTML代码表,然后能通过各种各样结合形式形成完整的一页。一些开发者已经更深入一步研究并且把这些HTML函数作为Visual Basic COM的组成部分,希望受益于额外的编译代码提供的执行性能。虽然这是一个好的设计惯例,通过这种方法建立数据流对网络站点执行效率有较大影响。不管现实操作执行是从ASP的包含文件还是Visual Basic COM 零部件。数据串串联考虑下列代码碎片取自WriteHTML函数。 命名数据的参数仅仅是一个数组包含一些需要被格式化成一个表结构的数据(数据从数据库返回, 例如)。Function WriteHTML( Data )Dim nRepFor nRep = 0 to 99 sHTML = sHTML & vbcrlf _ & & (nRep + 1) & _ & Data( 0, nRep ) & _ & Data( 1, nRep ) & _ & Data( 2, nRep ) & _ & Data( 3, nRep ) & _ & Data( 4, nRep ) & _ & Data( 5, nRep ) & NextWriteHTML = sHTMLEnd Function这就是为什么很多ASP和Visual Basic开发者建造HTML代码。包含在sHTML变量里的正文被返回给呼叫代码然后使用Response.Write给客户写信。当然,这也能以相似代码表示直接嵌入网页而不使用WriteHTML的功能。这条代码的问题在于ASP和Visual Basic使用的数据类型,BSTR或者基本数据流,实际上不能改变长度。这表示每当数据流的长度被改变的时候,数据表示就被破坏,包含新数据类型的数据流随之产生:这结果产生在存储器分配操作和存储器分离操作中。当然,在ASP 和Visual Basic这都由你管理,因此实际上的花费不显示在表面上。分配和再分配存储器要求基础的运行期代码取出专有的锁,因此可能是昂贵的。这在数据量很大并且大块的存储器需要连续快速的被分配时显得特别明显,在重级联线期间也是如此。当这在一种单个的用户环境里不能提出主要的问题时,在服务器环境里例如在ASP申请在一个Web 服务员上运行可能会引起严重的性能和可测量性问题。 因此回到上面的代码碎片:多少数据分配在这里执行?实际上答案是16。在这种情况下每次对&的应用操作引起那些可变的sHTML比破坏和重建。我已经提及到数据分配是昂贵的,随着数据的增加越来越明显; 用这知识武装,我们能对上面的代码加以改进。快速简单的解决方案这里有两种方法减轻数据串联的影响,第1是为了想办法减少操作的数据流的大小,第2是想办法降低数据应用操作的数量。看修订后WriteHTML代码,如下。Function WriteHTML( Data )Dim nRepFor nRep = 0 to 99sHTML = sHTML & ( vbcrlf _ & & (nRep + 1) & _ & Data( 0, nRep ) & _ & Data( 1, nRep ) & _ & Data( 2, nRep ) & _ & Data( 3, nRep ) & _ & Data( 4, nRep ) & _ & Data( 5, nRep ) & )NextWriteHTML = sHTMLEnd Function乍一看很难认出前后代码之间的差别。后一个有插入语在sHTML = sHTML&。这实际上降低了数据流的大小通过改变数据串联的优先权的大小。在原先的代码里ASP编译器将考虑表达式的等式右边并且从左到右评价它。这结果在16级联操作中包括一直在增长的sHTML。在新版本中,我们给编译器一个暗示以改变它执行操作的次序。现在它将从左到右彻底的进行评价,即首先的内部插入语。这技术导致15级联操作中包含小的数据流并且只有一个sHTML是增长的。图1显示了这一个相对于标准串联方法而言的最优化级联方法。串联使用插入语在一定的情形下能使性能和可测量性有相当明显的差别,我将在本文中证明。The StringBuilder我们已经知道了对于数据串联问题的最好解决方法,并且它还提供了很多很多情况下在性能和实现的努力之间的平衡。然而,如果我们想要得到改进建造大数据流的性能,我们需要作出第2个选择,就是减少数据流分配的数量。为了达到这个目的要求使用StringBuilder。这是一个包含数据结构缓冲器和试图插入新内容的类,且只有在数据长度超过缓冲器的长度时才进行再分配。微软. NET免费提供了一个被推荐在全部数据串联环境的类(System.Text.StringBuilder)。在ASP和Visual Basic世界我们无法使用这种类,因此我们需要创造属于我们自己的。以下是一个使用Visual Basic 6.0开发的类StringBuilder(为了更简练我们忽略了处理错误的规则)。Option Explicit default initial size of buffer and growth factorPrivate Const DEF_INITIALSIZE As Long = 1000Private Const DEF_GROWTH As Long = 1000 buffer size and growthPrivate m_nInitialSize As LongPrivate m_nGrowth As Long buffer and buffer countersPrivate m_sText As StringPrivate m_nSize As LongPrivate m_nPos As LongPrivate Sub Class_Initialize() set defaults for size and growth m_nInitialSize = DEF_INITIALSIZE m_nGrowth = DEF_GROWTH initialize buffer InitBufferEnd Sub set the initial size and growth amountPublic Sub Init(ByVal InitialSize As Long, ByVal Growth As Long) If InitialSize 0 Then m_nInitialSize = InitialSize If Growth 0 Then m_nGrowth = GrowthEnd Sub initialize the bufferPrivate Sub InitBuffer() m_nSize = -1 m_nPos = 1End Sub grow the bufferPrivate Sub Grow(Optional MinimimGrowth As Long) initialize buffer if necessary If m_nSize = -1 Then m_nSize = m_nInitialSize m_sText = Space$(m_nInitialSize) Else just grow Dim nGrowth As Long nGrowth = IIf(m_nGrowth MinimimGrowth, m_nGrowth, MinimimGrowth) m_nSize = m_nSize + nGrowth m_sText = m_sText & Space$(nGrowth) End IfEnd Sub trim the buffer to the currently used sizePrivate Sub Shrink() If m_nSize m_nPos Then m_nSize = m_nPos - 1 m_sText = RTrim$(m_sText) End IfEnd Sub add a single text stringPrivate Sub AppendInternal(ByVal Text As String) If (m_nPos + Len(Text) m_nSize Then Grow Len(Text) Mid$(m_sText, m_nPos, Len(Text) = Text m_nPos = m_nPos + Len(Text)End Sub add a number of text stringsPublic Sub Append(ParamArray Text() Dim nArg As Long For nArg = 0 To UBound(Text) AppendInternal CStr(Text(nArg) Next nArgEnd Sub return the current string data and trim the bufferPublic Function ToString() As String If m_nPos 0 Then Shrink ToString = m_sText Else ToString = End IfEnd Function clear the buffer and reinitPublic Sub Clear() InitBufferEnd Sub在这个类中使用的基本原理是一易变的(m _ sText)被保持在作为一个数据缓冲器的类水平,这个缓冲器通过使用Space$函数被调整到一定尺寸, 并用空格符充满它。当更多的正文需要与现有的数据串联时,在检查缓冲器足够大之后,Mid$函数被用于将数据插入到正确位置。ToString 函数返回数据被正确储存,同时也整理缓冲器的大小以适合数据。使用StringBuilder的ASP代码如下显示。Function WriteHTML( Data )Dim oSBDim nRepSet oSB = Server.CreateObject( StringBuilderVB.StringBuilder ) initialize the buffer with size and growth factoroSB.Init 15000, 7500For nRep = 0 to 99 oSB.Append , (nRep + 1), , _ Data( 0, nRep ), , _ Data( 1, nRep ), , _ Data( 2, nRep ), , _ Data( 3, nRep ), , _ Data( 4, nRep ), , _ Data( 5, nRep ), NextWriteHTML = oSB.ToString()Set oSB = NothingEnd Function使用StringBuilder类有一项明确的经常性开支,为因为每当使用它时必须建立一个类的实例(并且包含DLL的类必须建立在实例基础上)。还有经常性开支包含额外方法称作StringBuilder实例。StringBuilder 如何执行与插入&方法有关,还取决于数据串联的数量,数据流的大小和StringBuilder数据缓冲区预置参数选择的情况。注意到多数情况下,过高估计空间的数量比增长要好一些。内构的建造方法ASP包括一种快速增加你的HTML代码的方式,并且仅仅是对Response.Write的简单调用。Write函数使用一个最优的具有很好的执行特征的数据缓冲器。被修正的WriteHTML代码显示如下。Function WriteHTML( Data )Dim nRepFor nRep = 0 to 99 Response.Write Response.Write (nRep + 1) Response.Write Response.Write Data( 0, nRep ) Response.Write Response.Write Data( 1, nRep ) Response.Write Response.Write Data( 2, nRep ) Response.Write Response.Write Data( 3, nRep ) Response.Write Response.Write Data( 4, nRep ) Response.Write Response.Write Data( 5, nRep ) Response.Write NextEnd Function虽然这很可能为我们提供最好的性能和可测量性,我们已经中断了封装因为我们现在有为Response数据写的函数代码,因此呼叫代码已经丢失控制的度。对这些代码的移动也变得有点困难(以COM的组成为例), 因为该函数依赖于Response数据流的利用。测试以上4种方法都已经通过简单的ASP页和填满虚拟数据的表的对比测试。该试验的执行依据Application Center Test(ACT)通过选择一个委托人(Windows XP Professional, PIII-850MHz, 512MB RAM)依靠专业的服务器(Windows 2000 Advanced Server, dual PIII-1000MHz, 256MB RAM)以100Mb/sec 的速度。ACT被配置成使用5线程以便模拟5个用户连接到网站。每次试验由20秒加热时间和随后的一个100秒负荷组成并尽可能多提出请求。测试在各种不同的变化很多的串联操作中进行,如在WriteHTML功能的代码碎片中所示。迄今,每次测试走都在各种各样的串联方法中运行过。结果以下是一系列图表显示了每种方法在应用中的吞吐量和在ASP页的响应时间。这对应用支持多少请求和用户在下载网页时应该等待多久给出了一些意见。Table 1串联方法缩写词缩写描述RESPThe built-in Response.Write methodCATThe standard concatenation (&) methodPCATThe parenthesized concatenation (&) methodBLDRThe StringBuilder method同时这次测试对典型的ASP应用而言是不实际的,从表2中很明显看出甚至在420次重复中记录也不太大; 如今有很多复杂的ASP页存在会超出数字的范围并且甚至超过测试的范围。Table 2试验样品的页面大小和串联的数量No. of iterationsNo. of concatenationsPage size (bytes)152402,667304804,917457207,167609609,417751,20011,6671201,92018,5391802,88027,8992403,84037,2593004,80046,6193605,76055,9794206,72062,219Figure 2Chart showing throughput results象期望的那样,我们能从图表2看见,多重的Response.Write方法(RESP)在整个测试的迭代范围中给我们最好的吞吐量。可是令人惊讶的是,标准数据串联方法(CAT)的退化速度以及括入语版本(PCAT)执行超过300次迭代的好处。在某处经常性开支为220迭代的StringBuilder方法(BLDR)开始显示出价值,这归功于数据缓冲,不管怎么样但有一点,在ASP页中使用StringBuilder将很可能得到额外的成就。Figure 3Chart showing response time resultsFigure 4Chart showing response time results with CAT omittedTime-To-First-Byte制作的图表3和图表4以毫秒为单位表示了响应时间的标准。标准数据串联方法的响应时间(CAT)如此增加得如此迅速以致于那些图表被重复除了这种方法(图4),因此其它方法之间的差别能被检查。有趣的是多重的Response.Write方法(RESP)和StringBuilder方法(BLDR)给出了看来是要一直增加迭代,但是一旦一定的门槛被打破,标准串联方法(CAT)和括入圆括号的串联方法(PCAT)都迅速增加。结论在这次讨论中我集中于多少数据流建造技术可以被应用于ASP环境中间;但是不忘记这适用于任何具有大数据流的Visual Basic的情况,例如手工建立XML资料。下列指南将帮助你决定何种方法可能最适于你的情形。 首先试试括入圆括号&的方法,特别是当处理现有代码时。这对代码结构只有很小的影响,并且你将发现这将提高应用性能使你超越你的目标。 如果有可能不损害你需要的封装水平,使用Response.Write。这将给你最好的性能以避免不必要存储器的字符串处理。 用StringBuilder建造真正的大的或者是加强的数据处理。 虽然你可能没有正确认识本文中表现的相同的性能增加,我已经在现实的ASP网页应用中使用这些技术以阐述它在性能和可测量性方面的极少的额外的努力。3所译外文资料:作者:Scott Mitchell书名(或论文题目):Making an ASP.NET Web Site Accessible出 版 社(或刊物名称)://default.aspx?pull=/library/en-us/dnaspp/html/acsaraf1.asp出版时间(或刊号):May 2004所译页码:4译成中文: 使一个ASP.NET 网站容易接近和理解Scott Mitchell 4guysfromRMay 2004Applies to:Microsoft ASP.NETMicrosoft .NET FrameworkMicrosoft Visual Studio .NET摘要: 利用ASP.NET类的可继承性使得它们的代码可以被那些没有能力的人使用和理解。(13打印页)绪论当大多数的网络用户使用带有典型设置的浏览器访问网页时,那些没有能力的用户一般利用可选的方法获得网上的信息。例如,盲人可能使用一种可以将文字转换成盲文的文本浏览器,或者用一个屏幕阅读器大声地读出来。一个视力衰竭的人可能仍然在使用诸如Microsoft Internet Explorer的浏览器,但是要辅助于屏幕放大器,或者设定特别大的显示字体。运动能力丧失的人可能就不能使用鼠标和键盘作为一种输入设备。由于残疾人通过使用特殊的设备和不标准的浏览器设置进行网上冲浪,一个网站的总体设计对残疾人的使用有着非常大的影响。例如,那些固定显示大小的绝对固定的特殊字号,就会和残疾人使用的设置不一样。那些含有Flash或者Shockwave界面,而且不提供更改、文字表达的,大大阻碍了残疾人使用盲文设备和text-to-speech合成器。一个可以容易地为不同设备做转换的网站是一个容易接近的。从这一点上说,你可能会想:“我为什么要考虑保证我的网站是容易接近的?”我认为这有两个很好的理由:1、这是一个好买卖从美国2000年的人口普查来看,有4970万的美国人都有能力缺陷;从Harris Interactive在2000年6月的登记显示43%的有缺陷的美国人是一般的网络用户,而且有能力缺陷的人的上网时间几乎是正常人的2倍。从这两个结果来看你会发现有超过2100万经常上网的残疾人。如果你不花一点时间让你的网站容易接近,你将失去2100万潜在的访问者。 2、这是政府机构的要求1998年美国政府通过了508项复原法案,要求联邦机构使得他们的电子信息容易被单独的残疾人所接近。这项法律为软件应用和网络应用以及电讯产品和视屏产品提供了指导方针。不仅仅是联邦机构必须执行这个方针,同时也包括那些为联邦政府工作的私人企业。(在其他的一些国家对政府机构也有类似的要求)因此,如果你是为政府工作或者在一个为政府提供服务的公司工作,制作容易接近的网络应用是必需的。 在这篇文章中我们将讨论通过什么步骤可以让你的网站变得容易接近。我们将简短地看一下可利用的正式的可接近指南,然后集中在被美国政府使用的可接近指南中。文章覆盖了怎样使用继承来使不易达到的ASP.NET站点变得接近指南。WAI, WCAG, and 508条标准使一个网站更容易达到有许多措施可被采取。但是这些措施是什么,一个站点需要使用多少才可能达到目的?这些问题的答案随着你询问的人和这些人需要提供的达到程度的不同而改变。一个财富进入世界500强的公司所需要的站点内部网比只有25个雇员的公司的站点内部网需要更高的可达到程度。WC3关于可接近性的意见为了使这个讨论正式化, WC3在1999正式成立了Web Accessibility Initiative,一个致力于使网络站点更容易被残疾人利用的群体。WAI首先发表Web内容满足可接近指南或者说叫WCAG。WCAG为设计可达到的网站的目录提供了14 条指南。指南并不详细说明如何制作一个更可达到的网站。相反,他们高度陈述怎样怎样保证可接近性。例如,指南1“提供等效的听觉和视觉内容的选择”。伴随每条指南的是一套关卡。关卡详细说明如何保证可接近性。每个关卡被赋予了下列优先权价值之一: 1)优先权价值1、一个Web 开发者必须满足这个关卡,否则一个或更多用户将不能访问内容。2)优先权价值2、一个Web 开发者必须满足这个关卡,否则一个或更多用户将很难访问到内容。 3)优先权价值3、一个Web 开发者必须满足这个关卡,否则一个或更多用户访问内容将有困难。 除列举的14条指南和他们相关联的,WCAG还提供了一个网站可接近的3级分类刻度。实现全部优先权1关卡的站点符合水平A。实现全部优先权1和优先权2的评价双A,实现所有关卡的评价三A。WCAG提供了一套好的行为保证不同程度的可达到性。虽然对WCAG的彻底的讨论在本文的范围之外,以下列出的是WCAG的14条指南。每条指南的关卡和他们的优先权值都能在官方网的可达到目录中找到。1. 提供等效的听觉和视觉内容的选择2. 不要仅仅依赖于颜色3. 使用标记和风格并尽量这么做4. 阐明自然语言的使用5. 建立优美地容易改变的表格6. 保证网页可以容易使用新技术7. 保证用户能控制改变对时间敏感的内容 8. 保证用户界面能直接达到9. 为独立设备做设计10. 使用临时的解决方法11. 使用W3C技术和指南12. 提供前后关系和方向性信息13. 提纲清晰的导航机制14. 保证文档简洁清晰创造一个适应性的、可接近的DataGrid Web控制2003年6月提出的Web控制将ASP.NET Web控制提高到第508条标准。然而,即使是Hotfix,仍然有一些不符合WCAG优先权1的关卡。幸运的是你可以很容易地扩展现有网络控制以满足你的公司所需要的达到性要求。这可能得感谢继承性的力量。特别的,我们可以通过延伸的功能让一个不符合达到性要求的网站达到要求。通过使用继承,我们只需修改或者增加功能性而不需要重写功能,就可以让控制符合标准。WCAG 关卡 6.3 说道:“保证当scripts、 applets或者其他功能脚本代码不可用或者不支持时网轧仍然可用。如果这是不可能的,就提供等同的信息。例如,保证触发scripts脚本的链接在scripts关闭或者不支持时仍能正常工作(例如,不要使用“javascript:as the link target”)然而,LinkButton呈现出超链接到javascript:linktarget(.). 问题是不支持JavaScript的浏览器不会点击链接后返回信息。这篇文章的剩余部分考虑建造一套适应习惯的DataGrid 专栏,那将展示一个Web控制的按钮在用户浏览器不支持JavaScript时如何在sortable DataGrid的头部内进行控制。这时,按钮控制显示的是一个标签而不是一个带javascript: link target的链接。注意:508条并不要求链接不使用javascript:link target。它唯一的客户端script评论可以在rule (l)中找到,它写道:“页面利用scripting语言来显示内容,或者构造基础的界面,由script提供的信息将由可以通过帮助技术读取的功能性文本来识别。”这条规则要求识别的是网页内容是由script产生的,还是它的行为是经过script修改的, HTML 元素将解释script行为。 不过,我曾经听一些在为政府做项目的开发者说他们被要求不使用JavaScript功能。让DataGridColumn具有适应性DataGrid Web 控制包括许多专栏,都是从System.Web.UI.WebControls.DataGridColumn类中派生出来的。 ASP.NET有5 种内置的DataGrid专栏: 1、边界专栏 2、按钮专栏3、编辑需求专栏4、链接专栏5、模板专栏父类DataGridColumn,为所有的DataGrid类专栏提供了道具和方法。这些道具包括标题、分类表达、可见物和其他。DataGridColumn类有两个制作DataGrid时起非常重要作用的方法: Initialize() 初始化DataGridColumn,在DataGrid的绑定过程中每个专栏调用一次。 InitializeCell(cell, index, itemType) 为在DataGrid的绑定过程中的每个专栏调用每个单元。Cell是在初始化过程中用实际的HTML 表示的TableCell;Index是单元初始化过程中的行索引;ItemType是ListItemType的例举值,指定所增加单元的类型(Item, AlternatingItem, Header, Footer, EditItem等等)。 DataGridColumn类是表现专栏的页眉页脚。源于BoundColumn、 ButtonColumn、 EditCommandColumn等等用于表现DataGrid项目的类。注意:要获得更多关于创造DataGrid类的信息,请参考Marcie Robillard的论文“Creating Custom Columns for the ASP.NET DataGrid”。为了让我们的DataGrid能根据用户的浏览器是否支持Java脚本而自动适应,我们要创造一个由DataGridColumn而来的一种DataGrid类。 这种DataGrid专栏类,叫做AccessibleDataGridColumn, 需推翻DataGridColumn类的InitializeCell()方法,将检查DataGrid是否设置成让不支持Java脚本的浏览器进行访问。如果这两种条件是正确的,AccessibleDataGridColumn将呈现出与LinkButton相反的一个button。这个类的代码显示如下:Public Class AccessibleDataGridColumn Inherits DataGridColumn Public Overrides Sub InitializeCell( _ ByVal cell As TableCell, _ ByVal columnIndex As Integer, _ ByVal itemType As ListItemType) Dim sorting As Boolean = _ Not Me.Owner Is Nothing _ AndAlso Me.Owner.AllowSorting _ AndAlso Me.SortExpression.Length 0 Dim supportsJS As Boolean = _ Not HttpContext.Current Is Nothing _ AndAlso HttpContext.Current.Request.Browser.JavaScript If sorting And Not supportsJS _ And itemType = ListItemType.Header And Not Me.DesignMode _ Then If Me.HeaderImageUrl.Length 0 Then Dim b As New ImageButton b.AlternateText = Me.HeaderTextb.ImageUrl = Me.HeaderImageUrl b.CommandName = Sort b.CommandArgument = Me.SortExpressionb.CausesValidation = False cell.Controls.Add(b) Else Dim b As New Button b.Text = Me.HeaderText b.CommandName = Sort b.CommandArgument = Me.SortExpression b.CausesValidation = False cell.Controls.Add(b) End If Else MyBase.InitializeCell(cell, columnIndex, itemType) End If End Sub End Class 这种强制性的方法InitializeCell()用来查看分类是不是被激活,如果当前的浏览器不支持客户端的JavaScript脚本,当前初始化的项目是一个页眉,且这种表现不是在Microsoft Visual Studio .NET的设计中的。如果测试通过,另一个测试将被执行用来确定这个专栏是否有一个指定的HeaderImageUrl值。如果有,它表现为ImageButton,设置它的AlternateText 为专栏的HeaderText。如果没有,将产生一个Button并添加到单元中。注意:查看一个浏览器是否支持JavaScript仅仅是看它Request.Browser.JavaScript的性质。这个性质是基于用户代理商发送到网络服务器的数据建立的。当一个浏览器不支持JavaScript时,可适应的DataGrid将在页眉中显示出Buttons,比如Netscape 1.0或者Lynx。如果使用Microsoft Internet Explorer 6.0则将显示为默认的LinkButtons,即使用户手动关闭了JavaScript支持功能。这篇文章下载了两篇Microsoft Visual Studio .NET 2003的工程(两个可视化的Visual Basic .NET工程):一个是包含DataGrid专栏类的类库;另一个是用来验证适应性的ASP.NET Web应用。要在一个ASP.NET Web工程中使用这些DataGrid专栏类你首先需要在ASP.NET Web工程的“/bin”文件夹中添加它的汇编器。(如果你要使用Visual Studio .NET,最简单的方法就是添加汇编器到提到的文件夹中。)其次,你需要象下面这样在ASP.NET Web页中添加一个能利用这些DataGrid类的 References提示: 最后,为了使用这些专栏,在ASP.NET Web页中添加一个DataGrid并且设置AutoGenerateColumns的性质为False。在HTML部分添加以下句法: . 以上就是关于这个的一切!图3显示了一个使用AccessibleBoundColumn和AccessibleButtonColumn DataGrid专栏类的ASP.NET Web页的HTML 部分的screenshot。图4显示的是该页设计效果的screenshot。图3. 使用AccessibleBoundColumn图4. 设计中的AccessibleBoundColumn注意到在Visual Studio .NET设计中的DataGrid,可理解的专栏看起来和标准的一样。同样,如果你使用一个支持JavaScript的浏览器查看一个网页(如图5),DataGrid将表现的和正常的一样,在专栏页眉有一个LinkButtons和 ButtonColumn。然而,如果你使用一个不支持JavaScript的浏览器,比如Netscape 1.0,那么ButtonColumn和专栏页眉将显示为Buttons(如图6)。图5.更新后的浏览器中的AccessibleBoundColumn图6.旧的浏览器中的AccessibleBoundColumnASP.NET中的可接近性ASP.NET服务器控制着下一个ASP.NET译文的运行,codenamed Whidbey,将自动产生默认的508条标准。此外,这些服务器控制也将产生WCAG-compliant标准。 为了超越过去,Microsoft Visual Studio .NET 2005将装载一个额外的功能去自动检查HTML的508条标准和WCAG-compliance。要获得更多的关于这个令人振奋的信息,请查看XHTML and Accessibility in ASP.NET Whidbey,来自Scott Guthrie,一个ASP.NET 的合作者。要获得更多关于网页可接近的信息,请务必查看Microsofts Accessibility home page。同样还有 Section 508 page,在上面能够找到多种多样的Microsoft产品如何做到符合508标准的信息。相关文献1) SP.NET Data Web Controls Kick Start2)ASP.NET Unleashed3)Web Accessibility for People with Disabilities4)Accessibility for Everybody: Understanding the Section 508 Accessibility Requirements学生签名 余卉 .(可添页) 2004 年 2月 10日指导教师审阅意见:指导教师签名 . 年 月 日所译外文资料附件(含封面、封底、目录、翻译部分页码的复印件等一并予以装订)外文资料原文1:Improving String Handling Performance in ASP ApplicationsJames MussonDeveloper Services, Microsoft UKMarch 2003Applies to:Microsoft Active Server PagesMicrosoft Visual BasicSummary: Most Active Server Pages (ASP) applications rely on string concatenation to build HTML-formatted data that is then presented to users. This article contains a comparison of several ways to create this HTML data stream, some of
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 能源行业智能化转型:2025年智能电网优化与电力需求响应报告
- 美术活动课活动方案
- 端午礼仪活动方案
- 美德健康活动方案
- 笔会策划活动方案
- 社群拉新营销活动方案
- 石油五四活动方案
- 研究式教研活动方案
- 美年卡十一活动方案
- 电务公司年会活动方案
- 教科版小学五年级上册科学实验报告20篇
- 2025-2026学年人教版(五线谱)(2024)小学音乐三年级上册教学计划及进度表
- 江西省宜春市2025年上半年事业单位公开遴选试题含答案分析
- 代销理财管理办法
- 医院物业管理质量标准及服务流程
- DR培训考试题及答案
- 脑卒中并发吞咽障碍个案护理
- 《中兽药生产技术》课件-14.中药炮制方法-火制
- 人力资源招聘与甄选工作标准化手册
- 民俗学课件山大
- 2025-2026秋季学年第一学期学生国旗下演讲稿(20周):第五周 76载荣光里我们茁壮成长-喜迎国庆
评论
0/150
提交评论