Web开发的一些小细节
1. Javascript 修改Html文件中文本框的Value,刷新页面Value会"保持"
平时一直玩动态页面ASP.net,对于“js修改页面控件的Value之后刷新页面,控件不会保存value“这点没有任何疑问。
但是今天无意中遇到如下问题,非常简单的Html代码
上面的代码存为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。将两个页面的字符集设置为一样之后,访问两个页面发现页面元素已经完全一致了。
以上两个是很小的问题也算是很基础的问题,通常都不会特别注意,不过遇到的时候如果没有想明白可能就头大了~~
平时一直玩动态页面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>
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。将两个页面的字符集设置为一样之后,访问两个页面发现页面元素已经完全一致了。
以上两个是很小的问题也算是很基础的问题,通常都不会特别注意,不过遇到的时候如果没有想明白可能就头大了~~