- 时间格式转换
问题描述: 把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]);
});
},
网友评论