Web开发的一些小细节

1. Javascript 修改Html文件中文本框的Value,刷新页面Value会"保持"
   平时一直玩动态页面ASP.net,对于“js修改页面控件的Value之后刷新页面,控件不会保存value“这点没有任何疑问。
   但是今天无意中遇到如下问题,非常简单的Html代码
 1
 2<body>
 3<input type="text" name="test" id = "test"  value="Test Text">
 4<input type="button" onclick="changeTxt()" value="change">
 5<script language="JavaScript">
 6<!--
 7function changeTxt()
 8{
 9    document.getElementById('test').value = "changed";
10}

11//-->
12
</script>
13</body>

上面的代码存为Test.aspx页面,一切表现正常。但是当存为Test.html之后问题就来了,发现按F5刷新页面之后,TextBox的Value依然是“Changed”,一阵苦想,最后得出结论:IE使用Html的修改日期作为Version来识别是否需要获取新版本。使用js修改页面值并不会使Html 文件的Version发生变化(因为Html文件的物理文件并没有发生变化),于是刷新的时候IE认为还是同一个Version的文件所以不会真正去Loading页面。

2. Html和ASP.net页面默认的字符集不同会使页面元素样式出现变化。
   如果上面的代码存为Html和.aspx文件分别访问,会发现两个页面最后展现的控件大小不一(例如:Textbox的宽度和高度在两个页面大小不一致)。通过查看HttpHeader中的信息发现原因是Html文件的字符集与IE的默认设置有关系,在我的机器上面会默认为GB2312;而ASPX默认的字符集UTF-8。将两个页面的字符集设置为一样之后,访问两个页面发现页面元素已经完全一致了。

以上两个是很小的问题也算是很基础的问题,通常都不会特别注意,不过遇到的时候如果没有想明白可能就头大了~~

posted on 2007-09-22 14:36  吹雪  阅读(337)  评论(0编辑  收藏  举报

导航