工作问题总结

  • 时间格式转换

问题描述: 把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 $('
').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]); }); },

你可能感兴趣的:(工作问题总结)