2017-05-18知识分享

ruby

hash的用法:

  • has_keys?(key)
  • delete_if{}
  • slice()和slice!()

xls和csv比较(引用,点击可以跳转原文链接)

  • 把数据写成csv格式文件。

    • csv文件可以直接用Excel打开。

    • 写csv文件的效率和写txt文件的效率一样高。

    • 同样的数据内容,生成的csv文件的大小远远小于生成的Excel文件。

从以上优点就可以看出生成csv文件消耗的内存绝对小于生成Excel文件。

  • 按一定的格式去生成csv文件,在Excel中打开的时候就是完整的行和列格式。

  • 看一下同样的数据内容,csv文件和Excel文件的大小对比:

导出excel确实有些麻烦,不能流式处理,导致占用比较大的内存,很容易导致内存溢出;并且excel的数据量是有限制的,不能超过65536行。
一旦超过,将无法生成excel文件。

用csv方式导出,则可以像导出txt一样,以文本流的方式进行流式处理,不但能导出海量信息,而且流式处理占用内存极低,服务器对浏览器的响应也是非常迅速的。轻松导出几百万行数据,理论上是不限量的。

不过,csv方式导出也存在问题:
首先,如果用excel来打开csv,超过65536行的数据都会看不见,这是excel程序的问题。

其次,如果你要导出一个身份证号码,手机号码,邮政编码等,纯数字构成的字符串,在excel中打开csv时,这些字段很容易被识别成数字,造成误解。
解决方法是在字符串前加“’”(单引号),然而这样处理后,excel打开scv时会看到这个“’”,又不对了,并且单击该单元格再离开后,这个单引号会自动消失,这是’在excel中的特殊用途导致的,如果此时再保存文件,文件中的’会丢失,如果再打开该csv文件,问题就更严重了,编码全成数字了(因为’丢了)!
看来这也是excel的问题。

上面两个问题按下不说的话,那么csv文件还是有些基本规则的,比如用”“括起来那么里面的”,”不会作为分隔符等转义操作。

总体而言,我也倾向于csv格式,它可以流式处理。

邮件附件过大无法发送问题

解决方式

目前想到的解决方式如下,如有更好的解决方式,欢迎交流
* 将邮件附件上传到远程,得到一个远程下载链接,并将下载地址附在邮件中,通过点击链接下载方式下载。

HTML

阻止浏览器标签关闭事件——onbeforeunload
关于jquery文档里的unload事件,在项目中尝试后并不可行,所以不建议使用jquery的unload方法。文档链接:http://jquery.cuishifeng.cn/unload.html

$(window).unload( function () { alert("Bye now!"); } );

DOM本身的方法:onbeforeunload
在火狐和chrome中试过,并不会弹出return中的内容,弹出的是该事件在当前浏览器下的内容。其他浏览器没有尝试过。

window.onbeforeunload=function(){ return 'MR.TAO IS THE GREATEST MAN OF THE WORLD!'};
  • 火狐:
    firefox
  • chrome:
    chrome

CSS

蒙版:
.cover-layer {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: #000;
opacity: 0.1;
display: none;
}

jquery

ajax请求返回partial

 <div class='show_params_box' id="box_<%= price_check_export.id %>">


$('.show_params').click(function(){
var id = $(this).attr('data-id');
var cover_layer = $('.cover-layer');
var box_id = '#box_'+id
var box = $(box_id)
$.ajax({
url: "/admin/zhuanchang/deal_price_checks/"+id+"/show_export_params",
type: "GET",
success: function(data){
cover_layer.show();
box.show();
box.html(data);
},
error:function(){
alert('服务器出错,请稍后重试!');
}
});
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值