该【Web开发经验总结 】是由【爱的奉献】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【Web开发经验总结 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。1,不要认为Struts 已经过时了,也不要盲目的去追随 JSF以及更新的MVC框
架,在目前Struts 仍旧是最为优秀的 MVC框架,尤其是后来与 Spring、Hibernate
(或者Ibatis )的结合,使得 Struts 的应用得到了进一步的发展,也许你认
为Webwork2、SpringMVC或者JSF更为优秀和实用,那么也没有关系,其实只要对你或你的公司适用,那么就可以了。
2,你知道Javascript 中的typeof 和instanceof 操作吗,如果不知道,劝你
还是看看这方面的知识吧, typeof 返回的是对象的类型,例如string 、number、
object 等等,而instanceof 判断的是一个对象是否是某个类的实例,例如:
vararr=newArray();
vartype=typeof(arr);. 在此省略");
要注意设置发送方式为 post,设置头信息的内容类型为
application/x-www-form-urlencoded ,charset 是否设置要看内容的编码情况,
另外大数据就放到 send之中,记住大数据不是放在 url 的参数之中的。
)
要知道,对于 ajaxpost方式提交的数据,在服务器端如果是 jsp不是简单使
用getParameter就能取得到的,需要从输入流中去取,这和附件上传有些类似的地方。当然要注意编码和解码的问题。
8,我们在界面中经常会通过 setTimeout 方法来实现定时或者异步操作, 例如:
setTimeout(myfunc,2000);.");
</script>
上面的代码中,("wait..."); 逻辑并不会等到 3秒后才执行,而是立即执行的,
其实这一点可能大部分开发人员都知道,但是如果不注意,就很容易犯下面的
错误,如下面代码所示:
varajax2HasExecuted=false;
varajaxRequest1;
functionajax1Func(){
if(!ajax2HasExecuted){
setTimeout(ajax1Func,200);
}
vartext=();
...
}
varajaxRequest2;
functionajax2Func(){
vartext=();
...
ajax2HasExecuted=true;
}
上面的代码是一个页面中同时发送了两个 ajax异步请求,分别有两个对应的
接收操作,而业务逻辑要求,这两个操作是要有先后顺序的,其中第一个接收
操作,需要等待第二个接收操作完成之后,才能进行处理,于是第一个操作中
就采用setTimeout 的方式,本意是在执行第一个操作的开始的地方, 先判断第
二个操作是否已经执行完毕,如果没有执行完毕,则等待 200毫秒后,重新执
行第二个操作,然后由于setTimeout 并不能组织后续的逻辑继续执行, 所以实
际上不管第二个操作是否完成,第一个操作都会一直往下执行下去,从而导致
业务上的错误。解决方法要么是在 if 后面加上else,或者在setTimeout 之后
直接return,例如:
if(!ajax2HasExecuted){
setTimeout(ajax1Func,200);
return;
}
9,和方法相信你已经用到过许多次了,但是总是出现这样或那样的问题,问题
主要是以下几个方面:
1)showModalDialog这个函数名经常被写错,例如经常被写成
showModelDialog,使得不能执行打开窗口的操作。
2)控制打开窗口的属性,例如尺寸、滚动条、菜单、状态栏等,是我们经常会
碰到的情况,但是我们经常会将这两种打开方式的属性名称以及属性之间的分
隔符混用,使得属性执行不正确,例如我举下面的例子,要求弹出一个宽 200
高300的窗口,你看哪些方式是对的?
(A)("about:blank","","width=200,height=300");
(B)("about:blank","","width:200,height:300");
(C)("about:blank","","width=200;height=300");
(D)("about:blank","","width:200;height:300");
(E)("about:blank","","dialogWidth:200px;dialogHeight:300px");
(F)("about:blank","","dialogWidth=200px;dialogHeight=300px");
(G)("about:blank","","dialogWidth:200;dialogHeight:300");
再多的选项就不写了,正确答案是 A和E,通过上面的问题我们需要记住一下
几点:
控制属性之间的分隔符是逗号“ ,”,属性和值之间用等于号 "="连接
控制属性之间的分隔符是分号“ ;”,属性之间的用冒号“ :”连接
控制属性中长度和宽度尺寸可以直接写数字,也可以加上度量,例如但是对于的长度和宽度则必须带上px,否则尺寸无效,这一点是很重要的。
px,
10,对于数据库中的 varchar
varchar2字段的最大长度为
型字段,是有长度限制的,例如
4000字符,在mysql中varchar
oracle10g 中
最长为255字符,
要注意这里面的限制值是单字节字符值,而汉字属于双字节字符,因此对于汉
字存储而言,varchar2 字段最多可以存储 2000个汉字,由此引申出来的一个
问题,就是web开发过程中的表单提交验证问题,因为对于中国用户而言,输
入的内容有可能是汉字和英文字符的组合,因此判断输入字符串的长度需要注
意,Javascript 中判断一个字符串的长度的方法为:
varstr="abcdef";
varlength=;
但是字符串的这个属性,计算的是独立字符的长度,例如一个中文字符按长度
计算,因此如下:
varstr=" 你好";
varlength=;
其长度的值为 2,而不是4,那么如何计算含有汉字或者说是双字节字符的真实
长度呢通过搜索可以很快找到方法,就是先将双子节字符替换为两个单字节字
符,然后计算替换后的字符的长度, 当然了JsJava中提供了对于双字节字符串
真实长度的计算支持,你可以查看其中的 StringUtils 类。
11,如果你不能默写出常用颜色的英文表示值和 16进制表示值,那么说明你的
HTML基本功还是需要练的,例如白色是white,十六进制是FFFFFF,红色是red,十六进制是FF0000,蓝色是blue,十六进制是0000FF,紫色是purple,橙色
是orange,网页中常用的灰色一般都是EEEEE,或者再浅一些EFEFEF,当然说这些并不是让你去背大量的颜色和十六进制值,但掌握一些常用的,还是很有
必要的。
12,Javascript 支持多维数组,但是没有构造函数可以直接生成多维数组,例
如一维数组可以通过 Array生成,例如:
vararr=newArray(12);
生成多维数组,虽然没有构造函数支持,但是可以通过另外一种方式实现,例
如实现一个12x5的二维数组:
vararr=newArray(12);
for(vari=0;i<;i++){
arr[i]=newArray(5);
}
另外,你可以直接使用 JsJava的标准类MultiDimensionArrayUtils ,支持生
成二维和三维数组。
13
从实际效果来看,img的默认align 并非是left ,好像应该是 bottom,而且上
面的情况在和上都试验过, 看来MSDN的说法是不太可信的, 或者是自己理解错
了你可以看一下 MSDN中的描述:
14,在界面中添加事件的方式主要有如下几种,例如当页面加载之后,执行函数myfunc,几种定义方式如下:
1)在<body/>标签中加入 onload事件,即:
<bodyonload="myfunc()"...>
2)在任何一个可以执行 Javascript 的地方定义,即:
=myfunc;
3)在<script/> 标签中定义,即:
<scriptfor=windowevent=onload>
myfunc();
</script>
4)将事件加入到事件队列中,即:
IE中("onload",myfunc)
Firefox 中("load",myfunc,false)
建议大家使用第四种方式,因为只有第四种方式,可以避免将其它的同类事件
覆盖,第四种方式是将该事件加入到同类的事件的队列之中,不会覆盖其它的
同类事件,这在 web开发过程种,是需要特别注意的,尤其我们自己定义一些
界面框架或者组建的时候, 经常需要定义 onload事件,这个时候最好是使用第
四种方式,因为引用界面框架和组建的用户, 可能在页面上也想使用 onload逻
辑,当然用户自己使用第四种方式也不会有问题,但是做为一个负责任的界面
高手,是不应该这样想得,我们应该严于律己,而宽以待人。
15
16,如何在HTML种加入一段保留格式化的文本,相信你会想到 <pre></pre>标
签,例如:
<pre>
这是一段格式化文本,
里面的文字直接将格式输出
</pre>
显示结果为:
这是一段格式化文本,
里面的文字直接将格式输出
对于一般情况而言,pre标签就够用了,但是pre标签的不足之处,在于它不能将其中的html标签也原样输出,而是进行了解析,例如:
<pre>
这是一段格式化文本, <fontcolor="red"> 里面的文字</font> 直接将<br>格
式输出
</pre>
显示结果为:
这是一段格式化文本, 里面的文字直接将
格式输出
那么如何才能将含有 HTML的内容也原样输出呢实际上在 HTML规范种有<xmp/>
标签,可以实现这种效果,例如:
<xmp>
这是一段格式化文本, <fontcolor="red"> 里面的文字</font> 直接将<br>格
式输出
</xmp>
显示结果为:
这是一段格式化文本, <fontcolor="red"> 里面的文字</font> 直接将<br>格
式输出
17,如何获取某个对象区域的尺寸以及坐标,是我们界面开发过程种经常会遇
到的一个问题,一般我们都采用 getBoundingClientRect 方法来获取对象的区
域,进而得到该区域的尺寸和坐标, 但是该方法只能在 IE中使用,当然Firefox
也有类似的方法,相信大多数开发人员不知道,该方法就是 getBoxObjectFor ,
为了不想为跨浏览器而操心,你可以直接下载 JsJava,使用其中的
DocumentUtils 类的getElementRectangle 静态方法,例如:
<scriptsrc=""></script>
<script>
varelemObj=("div1");//div1 是一个div的id
varrect=(elemObj);// 返回的rect 是JsJava中的Rectangle 对象
varx=();
vary=();
Web开发经验总结 来自淘豆网m.daumloan.com转载请标明出处.