工作问题总结

  • 时间格式转换

问题描述: 把Thu Aug 18 20:38:54 CST 2016 的格式的时间转化为 yyyy-MM-dd HH:mm:ss 格式

// 时间转换函数
function getTaskTime(strDate) {
        if(null==strDate || ""==strDate){
            return "";
        }
        var dateStr=strDate.trim().split(" ");
        var strGMT = dateStr[0]+" "+dateStr[1]+" "+dateStr[2]+" "+dateStr[5]+" "+dateStr[3]+" GMT+0800";
        var date = new Date(Date.parse(strGMT));
        var y = date.getFullYear();
        var m = date.getMonth() + 1;
        m = m < 10 ? ('0' + m) : m;
        var d = date.getDate();
        d = d < 10 ? ('0' + d) : d;
        var h = date.getHours();
        var minute = date.getMinutes();
        minute = minute < 10 ? ('0' + minute) : minute;
        var second = date.getSeconds();
        second = second < 10 ? ('0' + second) : second;
        return y+"-"+m+"-"+d+" "+h+":"+minute+":"+second;
    };

  • 浏览器拦截ajax返回后的新窗口

问题描述: ajax返回数据后,模拟点击提交表单事件打开新窗口被浏览器拦截.
解决方案: ajax (async :false)异步改为同步,同时把操作放到ajax返回之后做.

 function queryToken() {
            FI.helper.ajax({
                url: '/api/token.json',
                type: 'GET',
                async :false,
                data: {
                    type: 'REGULAR_INVEST'
                },
                success: function (data) {
                    if (data.head.code == 200) {
                        //添加token到隐藏字段
                        $('#J-token').attr('value',data.body.data);
                    }
                }
            });
            //模拟点击事件提交隐藏表单
            $('#J-invest-hidden-sub')[0].click();
        }

  • nodejs并发

问题描述: nodejs for循环遍历时,事件流出错.因为node是异步io
- 解决方案:
方案1: 异步改为同步,可以用闭包解决,因为闭包执行完毕之后也不会释放内存.
方案2: 使用eventproxy 控制并发
方案3: 使用async 控制并发

  • 富文本转码 避免xss攻击

问题描述: 传给后端的富文本数据,在前端传送的时候要转意处理,避免XSS攻击
解决方案: 使用对<> 空格 / \ 等特殊字符转意处理

 function htmlEncode(str) {
                    //return $('<div/>').text(str).html().replace(/&/g, "&");
                    var dict = {
                        '&': "&",
                        '<': "<",
                        '>': ">",
                        ' ': " ",
                        '\'': "'",
                        '"': """
                    };
                    if ("string" !== typeof str) return str;
                    if (str.length == 0) return "";
                    return str.replace(/[&<> \'\"]/g, function (c) {
                        return dict[c];
                        // console.log(dict[c]);
                    });
                },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一般使用支付宝支付的原理: 现支付宝的通知基本上有两类。A服务器通知,对应的参数为notify_url,支付宝通知...
    亭台雨榭阅读 1,351评论 0 0
  • 写在最前 工作过程发现的一些问题和一些项目中我们要思考的问题,总结如下: Log4j多进程写同一文件的问题 red...
    大道至简_Andy阅读 347评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 本文转发自github, 原文地址 <a name='js'>JavaScript</a> 介绍js的基本数据类型...
    XDUZ阅读 1,072评论 1 11
  • 今天是阅读把时间当做朋友的第二天, 今天的三个主题呢 1速成绝无可能,2交换才是硬道理,3完美不存在 中国有句古话...
    熊芳菲阅读 422评论 0 2