2008-4-1 12:04:16 来源:本站原创 作者:李文鹏 点击:1685
这一段时间以来一直都在做web,过程中发现一些问题,只有在实践中才能发现问题。
前一段时间在用Ajax做模仿windows关机效果,大体的效果就是在点击某一按钮之后屏出现一个对话框,并且屏幕的颜色变暗,开始想做这个的时候并没有看过相关的资料,想自己实现一下试试,我大体的思路就是在点击按钮之后将一个对话框层的Div的display属性设为block,然后再设置背景的颜色,结果怎么实现也没有成功,因为这种方法根本就不对,最近看了看人家做的这种效果感觉自己思维还总是固定在一个固定的模式上,对于屏幕变暗应该不只是背景颜色改变那一种方法,具体的思路是先“锁屏”,也就是刚才说的屏幕颜色变暗,锁屏用的方法并非是设置背景的颜色,而是设置了一个半透明的Div,背景色设为#9999999,在点击按钮的时候将这个层的display属性设为block,并点将这个div的width和height属性分别设置为浏览器的clientWidth和clientHeight,再将实现对话框的层再显示出来,这样便实现了类似win关机的效果。如此看来在程序设计的过程中务必要克服思维定式,一个好的程序员必须做到的。
另一方面前一段时间在aspx页面引入了Ajax,开始写的时候还没发现什么问题,到后来开始用LinkButton控件和DropDownList控件,很奇怪,这两个控件的服务器端控件失效,而且在前台转换成html的甚至还会出现脚本错误,至于脚本错误在前台检查js的时候应该会得到解决,我看了一下这两个控件在前台生成的html代码,这两个控件在生成服务器端控件的时候比其它控件多生成了这样一段js代码
<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
很奇怪,在用firefox的错误控制台测试js代码的时候就提示这一段代码里面有错误,这个问题困扰了我很长时间,微软肯定不会犯这样的错误,总不会让这样一个小控件在生成代码的时候出现脚本错误吧,估计也不会,它提示的是submit方法不存在,记不太清了,反正很奇怪,那样的话肯定是其它代码跟这一段代码有冲突了,但测试其它代码的时候我一句一句地检查并且代码检察器也没有检查出错误来,困扰了很久后来我想会不会是变量命名冲突的问题,果不其然,再仔细一检查,每一个页面我都引入了一个用做对话框的div,div里面定义了一个button按钮,这个按钮的id我理所当然就设置成了submit,结果正是这个id跟微软生成的那段代码出现了冲突,郁闷啊,什么事情都有可能发生,所以我又领会到一点,做为一个程序员就应该考虑到每一种可能发生的情况,理所当然是对的到最后也有可能就是错误的根源。
一个合格的程序员除了扎实的技术基础外,还需要的是逻辑的思维和冷静的心态。
上一篇:
SOCKET编程实现简单FTP客户端
下一篇:
Ubuntu环境下驱动Conexant ADSL USB Modem上网
[2008-4-5] Ubuntu环境下驱动Conexant ADSL USB Modem上网
[2008-4-2] Ubuntu环境下安装matlab过程详解
[2008-4-1] [原创]web开发过程中的问题
[2008-3-30] SOCKET编程实现简单FTP客户端
[2008-3-30] 霍夫曼编码算法C++实现