NET网页编程之ASP.NET AJAX之UpdatePanel 和Jquery抵触
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)java是开放的,相同的工具就会有很多公司在做,加上java已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。比来一个项目碰到了一点点贫苦,请看成绩形貌:在第一次页面加载时,元素A的X效果一般,点击B以后,页面部分革新,此时,回到A,元素A得到X效果.
入手下手觉得是前端我这到程序员那边呈现成绩,但细心反省以后发明没有,厥后懂得了下页面使用了ASP.NETAJAX部分革新,这就开阔爽朗了,估量是和JQUERY抵触了。
成绩重现:
1.ASP.NETAJAX在页面中增加ScriptManager和UpdatePanel
2.在UpdatePanel中增加元素A
3.用jQuery对元素A增加X效果
4.在UpdatePanel中加一个ButtonB用作postback
如许成绩就呈现了。
剖析1:
UpdatePanel在使用中次要用于部分革新,制止全部页面的Postback。UpdatePanel完成部分革新的中心在于MicrosoftAjaxWebForm.js文件,它的部分革新历程就是将页面提交到服务端(包括ViewState),实行服务端代码后异步将在UpdatePanel内的HTML举行从头出现。在此过程当中,页面的别的部分并没有形态变动。
剖析2:
jQuery能够经由过程复杂的代码对HTML元素增加各类属性和事务句柄,我们能够在这里看到官方的文档:
Tutorials:HowjQueryWorks
http://docs.jquery.com/How_jQuery_Works
在这里,我们能够得知,jQuery有个主要的事务标志“ready”,一样平常对HTML元素的效果和事务句柄都经由过程这个ready事务来增加,以下:$(document).ready(function(){
$(“p”).text(“TheDOMisnowloadedandcanbemanipulated.”);
});
官方对此的申明是:ready事务会在DOM完整加载后运转一次,OK,至此,成绩的缘故原由差未几分明了:
缘故原由:
由于在UpdatePanel部分革新以后,个中的元素A被重写,而此时全部DOM树并没有从头加载,以是jQuery的ready事务并没有触发,以是元素A就得到了原本的殊效。
办理计划:
我们能够将ready事务中实行的代码提掏出来,然后经由过程捕捉ScriptManager的EndRequest事务,在每次UpdatePanel部分革新以后实行一次jQuery初始化代码,以下所示:<scripttype=”text/javascript”>
functionslide(){
//hereiscode
}
functionload(){
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
functionEndRequestHandler(){
slide();
}
</script>
最初就是必要增加<body>
一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 那么,ASP.Net有哪些改进呢? 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
页:
[1]