让我们记住那些神奇的错误们
2010-07-28 15:14
309 查看
最近开发中碰到几个神奇的问题,写在这里,用以记录我的那些惊奇。
猜猜以上代码点击aaa会发生什么? 提交表单?不不,以上代码会报js的语法错误。而且有时候用户不一样,还不一定会报错!
怎么样,很神奇吧。让我们来看看原因,在录入的时候,form的method属性录入的是P0ST,注意那个0,是数字的0而不是字母的O
。这样一来,其实表单是按照GET方法提交的。在写代码的时候Eclipse不会报错,只会警告,但是一个工程中警告的地方少说有1W多处……,但是一旦这个表单提交的内容超过GET方法的限制,就会报JS语法错误。
我像你保证,这个没有任何语法错误,但是该死的下载文件名就是不变,如果我要写固定,比如说写"aaa"就可以正常下载aaa.xls文件,但是我要用reportName,就不起作用。这很让人抓狂。
真正的原因在这里:如果我要用字母的话不是乱码,浏览器可以辨认,但是如果要换成reportName里的汉字,由于忘记了编码转换,所以是乱码,乱码就不认,不认就会造成它自己再找一个名字的神奇结果……
循环,又见循环
神奇的FLASH点击问题
这个问题没有代码,问题大概是这样的:写了 一个FLASH,这个FLASH在接受点击的时候调用网页上的一个JS函数,在服务器上实验的没有任何问题,但是到了单独的网页上就不管用了,各种浏览器都不行。后来发现了原因所在:单独网页的版本等于是FALSH访问本地文件,安全设置直接就屏蔽掉了点击这个动作,解决办法是在控制面板里设置FLASH PLAYER的信任位置,添加文件的位置到信任位置。顺利解决
提交表单能提交出js语法错误
<a onclick = 'aaa()' >bbb</a> <form name = 'fm' action ="dd1.do" method = 'P0ST'> .................................. </form> <mce:script language = "javascript"><!-- function aaa(){ fm.submit() ; } // --></mce:script>
猜猜以上代码点击aaa会发生什么? 提交表单?不不,以上代码会报js的语法错误。而且有时候用户不一样,还不一定会报错!
怎么样,很神奇吧。让我们来看看原因,在录入的时候,form的method属性录入的是P0ST,注意那个0,是数字的0而不是字母的O
。这样一来,其实表单是按照GET方法提交的。在写代码的时候Eclipse不会报错,只会警告,但是一个工程中警告的地方少说有1W多处……,但是一旦这个表单提交的内容超过GET方法的限制,就会报JS语法错误。
闹意见的下载文件名
这是一个导出Excel的模块BufferedOutputStream bufferedOutputStream = new BufferedOutputStream( response.getOutputStream()); String reportName = request.getParameter("ReportName"); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); String tmp = "attachment;filename=" + reportName + ".xls" ; response.setHeader("Content-Disposition", tmp); Class c = Class.forName("createExcel.TableCreater") ; TableCreater creater = (TableCreater)(c.getConstructor(HttpServletRequest.class).newInstance(request)); //导出Excel HSSFWorkbook wb = creater.createTable() ; wb.write(bufferedOutputStream) ; bufferedOutputStream.flush() ; bufferedOutputStream.close() ;
我像你保证,这个没有任何语法错误,但是该死的下载文件名就是不变,如果我要写固定,比如说写"aaa"就可以正常下载aaa.xls文件,但是我要用reportName,就不起作用。这很让人抓狂。
真正的原因在这里:如果我要用字母的话不是乱码,浏览器可以辨认,但是如果要换成reportName里的汉字,由于忘记了编码转换,所以是乱码,乱码就不认,不认就会造成它自己再找一个名字的神奇结果……
循环,又见循环
while(rs.next()){ OrginRecord tmpRecord = initOrginRecordDto(rs); res.put(tmpRecord.generatUniqueKey(), tmpRecord) ; }//END WHILE
这个循环没有任何语法错误,它只有一点不好,循环很多次的时候会慢的要死,原因在于,循环的时候,是要从数据库那边取出一条记录的,这样在网络上会浪费大量的时 间。修正它的办法也很简单,让它一次性多取一些。 rs.setFetchSize(FETCH_SIZE) ;
神奇的FLASH点击问题
这个问题没有代码,问题大概是这样的:写了 一个FLASH,这个FLASH在接受点击的时候调用网页上的一个JS函数,在服务器上实验的没有任何问题,但是到了单独的网页上就不管用了,各种浏览器都不行。后来发现了原因所在:单独网页的版本等于是FALSH访问本地文件,安全设置直接就屏蔽掉了点击这个动作,解决办法是在控制面板里设置FLASH PLAYER的信任位置,添加文件的位置到信任位置。顺利解决
easyUi在IE6下的select穿透问题
$('#dailog').dailog(options).data().window.shadow.append('<iframe width="100%" height="100%" frameborder="0" scrolling="no"></iframe>');
相关文章推荐
- 让我们共同记住那些闪亮的日子…
- 读书笔记:《粘住:为什么我们记住了这些,忘掉了那些?》
- 那些我们熟悉的扑克游戏
- 作为一名合格的Linux程序员,我们应当读那些书呢?????
- 那些曾让我们心动的Lumia盘点
- 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
- 那些雷得我们如此销魂的台词
- 这些年,那些我们一起读过的代码
- 那些成功的产品教给我们WEB设计的事儿
- NOI那些神奇的错
- 记住牛人那些话
- 记住朋友说过的那些话
- 于建嵘:请记住那些曾仰望星空的人
- 那些我们还不知道的程序惊人复杂性
- Sql Server之旅——第一站 那些给我们带来福利的系统视图
- 那些天,我们一起追过的C++
- 生命是最大财富 2007我们需要记住的“健康数字”
- 挖一挖C#中那些我们不常用的东西之系列(4)——GetHashCode,ExpandoObject
- 挖一挖C#中那些我们不常用的东西之系列(3)——StackTrace,Trim
- 感谢那些一直以来陪伴纠缠的挫折与不快,让我们懂得温暖的所在。