ASP.NET网页设计DOM事务简介仓酷云
就安全性而言,net网页编程已经远远低于VB.NET,更无法与安全性著称的C#相比。Click、touch、load、drag、change、input、error、risize—这些都是冗杂的DOM(文档对象模子)事务列表的一部分。事务能够在文档(Document)布局的任何部分被触发,触发者能够是用户操纵,也能够是扫瞄器自己。事务并非只是在一处被触发和停止;他们在全部document中活动,具有它们本人的性命周期。而这个性命周期让DOM事务有更多的用处和可扩大性。作为一个开辟职员,我们必需要了解DOM事务是怎样事情的,然后才干更好的把握它,使用它们潜伏的上风,开辟出更高交互性的介入体验(engagingexperiences)。
反不雅我做前端开辟的这么长工夫里,我以为我历来没有看到过一个关于DOM事务是怎样事情的较为间接正确的注释。明天我的方针就是在这个课题上给人人一个明晰的先容,让人人可以更疾速的懂得它。我起首会先容DOM事务的基础利用体例,然后会深切发掘事务外部的事情机制,注释我们怎样利用这些机制来办理一些罕见的成绩。
监听事务
在已往,支流扫瞄器之间关于怎样给DOM节点增加事务监听有着很年夜的纷歧致性。jQuery如许的前端库为我们封装和笼统了这些差别举动,为事务处置带来了极年夜的便当。
现在,我们正一步步走向一个尺度化的扫瞄器时期,我们能够加倍平安地利用官方标准的接口。为了复杂起见,这篇文章将次要先容在古代扫瞄器中怎样办理事务。假如你在为IE8大概更低版本写JavaScript,我会保举你利用polyfill大概一些框架(如jQuery)来办理事务监听。
在JavaScript中,我们利用以下的体例为元素增加事务监听:
1
element.addEventListener(<event-name>,<callback>,<use-capture>);
[*]event-name(string)
这是你想监听的事务的称号或范例。它能够是任何的尺度DOM事务(click,mousedown,touchstart,transitionEnd,等等),固然也能够是你本人界说的事务称号(我们会在前面先容自界说事务相干内容)。
[*]callback(function)(回调函数)
这个函数会在事务触发的时分被挪用。响应的事务(event)对象,和事务的数据,会被作为第一个参数传进这个函数。
[*]use-capture(boolean)
这个参数决意了回调函数(callback)是不是在“捕捉(capture)”阶段被触发。不必忧虑,我们稍后会对此做具体的注释。
1
2
3
4
5
6
7
8
varelement=document.getElementById(element);
functioncallback(){
alert(Hello);
}
//Addlistener
element.addEventListener(click,callback);
Demo:addEventListener
移除监听
移除不再利用的事务监听是一个最好理论(特别关于长工夫运转的Web使用)。我们利用element.removeEventListener()办法来移除事务监听:
1
element.removeEventListener(<event-name>,<callback>,<use-capture>);
可是removeElementListener有一点必要注重的是:你必需要有这个被绑定的回调函数的援用。复杂地挪用element.removeEventListener(click);是不克不及到达想要的效果的。
实质下去讲,假如我们思索要移除事务监听(我们在长工夫运转(long-lived)的使用中必要用到),那末我们就必要保存回调函数的句柄。意义就是说,我们不克不及利用匿名函数作为回调函数。
1
2
3
4
5
6
7
8
9
varelement=document.getElementById(element);
functioncallback(){
alert(Helloonce);
element.removeEventListener(click,callback);
}
//Addlistener
element.addEventListener(click,callback);
Demo:removeEventListener
保护回调函数高低文
一个很简单碰到的成绩就是回调函数没有在料想的运转高低文被挪用。让我们看一个复杂的例子来注释一下:
1
2
3
4
5
6
7
8
9
10
11
12
13
varelement=document.getElementById(element);
varuser={
firstname:Wilson,
greeting:function(){
alert(Mynameis+this.firstname);
}
};
//Attachuser.greetingasacallback
element.addEventListener(click,user.greeting);
//alert=>Mynameisundefined
Demo:Incorrectcallbackcontext
利用匿名函数(AnonymousFunctions)
我们但愿回调函数中可以准确的输入”MynameisWilson”。现实上,了局确是”Mynameisundefined”。为了使得this.firstName可以前往”Wilson”,user.greeting必需在user对象的高低文情况(context)中被实行(这里的运转高低文指的是.号右边的对象)。
当我们将greeting函数传给addEventListener办法的时分,我们传送的是一个函数的援用;user响应的高低文并没有传送已往。运转的时分,这个回调函数实践上是在element的高低文中被实行了,也就是说,在运转的时分,this指向的是element,而不是user。以是this.firstName是undefined。
有两种体例能够制止这类高低文毛病的成绩。第一种办法,我们能够在一个匿名函数外部挪用user.greeting()办法,从而取得准确的函数实行高低文(user)。
1
2
3
4
element.addEventListener(click,function(){
user.greeting();
//alert=>MynameisWilson
});
Demo:Anonymousefunctions
利用Function.prototype.bind
上一种体例并非十分好,由于我们不克不及取得回调函数的句柄以便前面经由过程.removeEventListener()移除事务监听。别的,这类体例也对照丑恶。。我更喜好利用.bind()办法(做为ECMAScript5的尺度内建在一切的函数对象中)来天生一个新的函数(被绑定过的函数),这个函数会在指定的高低文中被实行。然后我们将这个被绑定过的函数作为参数传给.addEventListener()的回调函数。
<p>1
2
3
4
5
6
//Overwritetheoriginalfunctionwith
//oneboundtothecontextofuser
user.greeting=user.greeting.bind(user);
<p> 网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项! 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
页:
[1]