最近工作遇到的技术问题总结

明天就是抗战胜利70周年啦,马上要放假了心里小小的鸡冻下;把最近几天的工作心得记录下来供大家和未来的自己参考,避免重蹈覆辙;工作心得其实就是技术心得吧,大概归纳几点:

第一,PHP文件的结束符?>后面回车空白行十几行会导致上面的导出数据到excel程序出来的Excel文件上面有十几行空白的;

第二,checkbox框的全选代码最简化;

第三,工作业务的思维多样性即解决问题的多样化。

 

 

第一:PHP文件结束符?>后面(下面)不要出现空白行(回车行,最好?>符号不要写)

昨天做了公司的后台数据的导出到excel,这个导出对每个人来说也许并不难,但我遇到的问题相信大家很那碰到过的:导出的excel文件从第1行到第18行出现空白(啥都没有),从第19行开始出现数据,如图:
最近工作遇到的技术问题总结_第1张图片
 是不是出现十几行的空白,问题来了:为啥出现?然后我们就检查程序:数据库查询的数据已经出现,不是这里的问题;我们把数据库读取程序都注释掉只让字段名显示再导出,依旧还是出现上面的18行空白;这就郁闷了,换方法:ajax传输数据导出excel,form表单POST到后台导出excel,链接地址 xx.php/charge/export?start_time=XX&end_timeYY,每种方法导出的excel都出现前18行的空白;好吧,是不是函数方法名(export)是敏感词,那我们换成exportdeal,换后还是出现前18行的空白;这就很纳闷了,我们再输出(avr_dump(1))查看页面源代码,一点点追踪thinkphp的底层代码,发现页面源代码也出现了前18行空白行,追踪到底层的“架构函数控制器实例”到我当前文件的类名Charge,我们一点点看class Charge...看到页面最尾部php的结束符?>下面目测有18行空白行,如图:
最近工作遇到的技术问题总结_第2张图片
 这行数这长相似曾相识啊,这么熟悉呢,再仔细研究一番悟出应该对的道理:php把PHP文件相当于html的include进来,然后我就把这18行空白行删除并删除结束符?>(该文件不是我建的我做二次开发),然后导出的Excel数据就正常了,暗自窃喜下夜晚犒劳下自己(整整搞一下午啊!!!);

对了,因为导出的字段含有订单如20150830145751525257,我们在程序前面加个空格就ok了如: ' '.$val['trade_no'];

 

第二,checkbox框的全选代码最简化;

再网上找了很多,大多都是千篇一律,代码不少不简洁,这里我说说我的吧:

//选中全选按钮,下面的checkbox全部选中 

function selectAll(obj)   //全选

{

      if(obj.checked==true){

            $(":checkbox:enabled").attr("checked",true);

      }else{

            $(":checkbox:enabled").attr("checked",false);

      }

}

<input type="checkbox" onclick="selectAll(this);" name="checkbox" id="checkbox" /> 全选

// 上面的代码思路很简单,选中则所有checkbox选中等;

 

第三,工作业务的思维多样性即解决问题的多样化。

当要处理单个客户的复杂业务逻辑(当然我们要使用事物)时候:我们不妨多想几个办法:

服务端的处理逻辑代码的功能函数代码较多,我们最好不要动;

第一,html那边选择多个客户js客户端for循环,循环里调用服务端的处理逻辑代码的功能函数;

第二,将服务端处理逻辑封装起来(返回值),服务端处理单个用户和多个用户的时候调用封装代码。

也许还有更多更好的思路吧,也烦请大神们多指教!

 

你可能感兴趣的:(技术总结)