网站通常使用一些javascript包裹 简化电话
//对于Web地址参数
//前面加“==”进行标识,否则直接返回
//解码时依据是否含有“==”标识来决定是否要解码
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64Encode = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); function Base64Encode(str) {
var reg=/^[a-zA-Z0-9]*$/;
if(str==null || reg.test(str))
{
return str;
}
str=Utf16To8(str);
var out, i, len;
var c1, c2, c3; len = str.length;
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xf0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xf) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xf0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3f);
} out=out.replace(/\//g,"@@")
return "==" + out;
}
function Utf16To8(str) {
var out, i, len, c; out = "";
len = str.length;
for (i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007f)) {
out += str.charAt(i);
} else if (c > 0x07ff) {
out += String.fromCharCode(0xe0 | ((c >> 12) & 0x0f));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3f));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));
} else {
out += String.fromCharCode(0xc0 | ((c >> 6) & 0x1f));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));
}
}
return out;
} function Utf8To16(str) {
var out, i, len, c;
var char2, char3; out = "";
len = str.length;
i = 0;
while (i < len) {
c = str.charCodeAt(i++);
switch (c >> 4) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i - 1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0f) << 12) |
((char2 & 0x3f) << 6) |
((char3 & 0x3f) << 0));
break;
}
} return out;
}
//base64编码结束 function ValidateEmail(str) {
var r = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
if (r.test(str)) {
return true;
} else {
return false;
}
} function ValidateTelPhone(str) {
var s = /^(\d{2,4})(-(\d{7,8}))$/;
if (s.test(str)) {
return true;
} else {
return false;
}
} function ValidatePhone(str) {
var regu = /^[1][3,5,8][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(str)) {
return true;
}
else {
return false;
}
} /*设置与获取Cookie*/
var Cookie = {}
Cookie.write = function (key, value, duration) {
var d = new Date();
d.setTime(d.getTime() + 1000 * 60 * 60 * 24 * 30);
document.cookie = key + "=" + encodeURI(value) + "; expires=" + d.toGMTString();
};
Cookie.read = function (key) {
var arr = document.cookie.match(new RegExp("(^| )" + key + "=([^;]*)(;|$)"));
if (arr != null)
return decodeURIComponent(arr[2]);
return "";
}; //input去掉默认内容还原编辑样式
function g_on_setvalue(id, value, cname) {
var obj = document.getElementById(id);
if (obj.value != value) {
return false;
}
obj.value = "";
obj.className = cname;
} //将日期转换成"yyyy-mm-dd"格式 第二个參数为返回类型传入'ym':yyyy-mm,'md':mm-dd,默觉得'yyyy-mm-dd'
function ConvertDateFormat(strDate, sye) {
if (strDate == null || strDate == "" || strDate == "0") {
return ("");
}
else {
try {
var ExDate = new Date(strDate.replace(/-/g, "/"));
var yyyy = ExDate.getFullYear();
var mm = ExDate.getMonth() + 1; mm = mm < 10 ? "0" + mm : mm;
var dd = ExDate.getDate(); dd = dd < 10 ? "0" + dd : dd;
switch (sye) {
case "ym":
return yyyy + "-" + mm;
break;
case "md":
return mm + "-" + dd;
break;
default:
return yyyy + "-" + mm + "-" + dd;
break;
}
}
catch (e) {
return ("")
}
}
}
//将日期转换成"yyyymmdd"格式 第二个參数为返回类型传入'ym':yyyy-mm,'md':mm-dd,默觉得'yyyy-mm-dd'
function ConvertDateFormatString(strDate, sye) {
if (strDate == null || strDate == "" || strDate == "0" || strDate.length < 8) {
return ("");
}
else {
try {
var ExDate = new Date(strDate.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1/$2/$3"));
var yyyy = ExDate.getFullYear();
var mm = ExDate.getMonth() + 1; mm = mm < 10 ? "0" + mm : mm;
var dd = ExDate.getDate(); dd = dd < 10 ? "0" + dd : dd;
switch (sye) {
case "ym":
return yyyy + "-" + mm;
break;
case "md":
return mm + "-" + dd;
break;
default:
return yyyy + "-" + mm + "-" + dd;
break;
}
}
catch (e) {
return ("")
}
}
}
//获取URL中的request參数
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null)
{ return decodeURIComponent(r[2]); }
else
{ return ""; } }
function aUrl(url) {
window.location.href = url;
}
function rForm(formid) {
document.getElementById(formid).reset();
}
//全选
function checkAll(id, checkname) {
var obj = document.getElementById(id);
if (obj.checked) {
$("input[name='" + checkname + "']").attr('checked', true)
} else {
$("input[name='" + checkname + "']").attr('checked', false)
}
}
//取checkbox 返回数组
function checkvalue(name) {
var obj = document.getElementsByName(name);
var aList = [];
var j = 0;
for (var i = 1; i < obj.length; i++) {
if (obj[i].checked) {
j = j + 1;
aList[j - 1] = obj[i].value;
}
}
if (aList.length == 0) {
alert("至少选择一条记录");
return false;
}
else {
return aList;
}
} //html编码
function HTMLEncode(input) {
var converter = document.createElement("DIV");
converter.innerText = input;
var output = converter.innerHTML;
converter = null;
return output;
}
//html编码解码
function HTMLDecode(input) {
var converter = document.createElement("DIV");
converter.innerHTML = input;
var output = converter.innerText;
converter = null;
return output;
} //tab标签层切换
function setTabDiv(curnum, checkstatus) {
if (checkstatus) {
$("#tabtooldiv a").removeClass("curtabbar");
$("#tabelement" + curnum).addClass("curtabbar");
$("div[name='tabconent']").css("display", "none");
$("#tabconent" + curnum).css("display", "block");
}
}
//验证金额
function checkPrice(thisobject) {
if ($(thisobject).val().toString() == "") {return;}
if ((/^\-? (([1-9]\d*)|\d)(\.\d{1,4})?$/).test($(thisobject).val().toString())) { }
else {
alert("输入金额格式错误请又一次输入! ");
$(thisobject).val("");
}
}
//限制文本输入长度
function isMaxLen(o) {
var nMaxLen = o.getAttribute ? parseInt(o.getAttribute("maxlength")) : "";
if (o.getAttribute && o.value.length > nMaxLen) {
o.value = o.value.substring(0, nMaxLen)
}
}
//验证整数
function intcheck(thisobject) {
if ($(thisobject).val().toString() == "") { return; }
if ($(thisobject).val().toString() == "0") { return; }
var number = $(thisobject).val();
var type = "^[0-9]*[1-9][0-9]*$";
var re = new RegExp(type);
if (number.match(re) == null) {
alert("请输入大于零的整数!");
$(thisobject).val("");
return;
} }
//比較时间
function comTime(begintime, endtime) {
var arr = begintime.split("-");
var starttime = new Date(arr[0], arr[1], arr[2]);
var starttimes = starttime.getTime(); var arrs = endtime.split("-");
var lktime = new Date(arrs[0], arrs[1], arrs[2]);
var lktimes = lktime.getTime(); if (starttimes >= lktimes) {
return false;
}
else
return true;
}
//open window
function showMyModalDialog(url, width, height,Title) {
var now = new Date();
var urlr
if (url.indexOf('=') == -1) {
urlr = url + "? cach=" + escape(now);
}
else {
urlr = url + "&cach=" + escape(now);
}
if (Title !=null)
{
JqueryDialog.Open(Title, urlr, width, height);
}
else
{
JqueryDialog.Open('', urlr, width, height);
} } //open mini window
function openwindow(url, height, width) {
var t = (window.screen.availHeight - 400) / 2;
var l = (window.screen.availWidth - 600) / 2;
window.open(url, "Query", "height=" + height + ", width=" + width + ", top=" + t + ",left=" + l + ",toolbar=no, menubar=no, scrollbars=yes, resizable=no");
} //confirm
function Confirm(msg, control) {
$.messager.confirm('确认', msg, function (r) {
if (r) {
eval(control.toString().slice(11));
}
});
return false;
} //gridview
function gridview(objgridview) {
//get obj id
var gridviewId = "#" + objgridview;
//even
$(gridviewId + ">tbody tr:even").addClass("NormalColor");
//first
$(gridviewId + ">tbody tr:first").removeClass("NormalColor").addClass("HeadColor");
//odd
$(gridviewId + ">tbody tr:odd").addClass("AlterColor");
//move and click edit by hb 20130206
$(gridviewId + ">tbody tr").hover(function () {
$(this).addClass("HoverColor");
}, function () {
$(this).removeClass("HoverColor");
}).click(function () {
var $check = $(this).find("input:checkbox");
if ($check.attr("checked")) {
$(this).addClass("SelectColor");
}
else {
$(this).removeClass("SelectColor");
}
});
//all check
$("#chkAll").click(function () {
$(gridviewId + '>tbody >tr >td >input:checkbox:visible').attr('checked', this.checked);
});
//check status
$(gridviewId + ' >tbody >tr >td >input:checkbox').click(function () {
var expr1 = gridviewId + ' >tbody >tr >td >input:checkbox:checked';
var expr2 = gridviewId + ' >tbody >tr >td >input:checkbox';
var selectAll = $(expr1).length == $(expr2).length;
$('#chkAll').attr('checked', selectAll);
});
} //load
function Load() {
$("<div class=\"datagrid-mask\"></div>").css({ display: "block", width: "100%", height: $(window).height() }).appendTo("body");
$("<div class=\"datagrid-mask-msg\"></div>").html("正在执行。请稍候。 。。").appendTo("body").css({ display: "block", left: ($(document.body).outerWidth(true) - 190) / 2, top: ($(window).height() - 45) / 2 });
} //display Load
function dispalyLoad() {
$(".datagrid-mask").remove();
$(".datagrid-mask-msg").remove();
} function checkroleinfo(checkresult, checkaction) {
if (checkresult == "1") { }
else {
$("[rolecheck='" + checkaction + "']").remove();
}
} function showLoad(tipInfo) {
var eTip = document.createElement('div');
eTip.setAttribute('id', 'tipDiv');
eTip.style.position = 'absolute';
eTip.style.display = 'none';
eTip.style.border = 'solid 0px #D1D1D1';
eTip.style.backgroundColor = '#4B981D';
eTip.style.padding = '5px 15px';
eTip.style.top = '10px';
eTip.style.right = '10px';
eTip.style.width = '120px'; eTip.innerHTML = '<img src=\'/Images/loader.gif\' style=\'float:left;\' /> <span style=\'color:#ffffff; font-size:12px\'>' + tipInfo + '</span>';
try {
document.body.appendChild(eTip);
} catch (e) { }
$("#tipDiv").css("float", "right");
$("#tipDiv").css("z-index", "99");
$('#tipDiv').fadeIn();
} function closeLoad() {
$('#tipDiv').fadeOut();
} function ForDight(Dight, How) {
Dight = Math.round(Dight * Math.pow(10, How)) / Math.pow(10, How);
return Dight;
} function changetitle(object) {
$(object).attr("title", $(object).val());
} function atoc(numberValue) {
var numberValue = new String(Math.round(numberValue * 100)); // 数字金额
var chineseValue = ""; // 转换后的汉字金额
var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 相应单位
var len = numberValue.length; // numberValue 的字符串长度
var Ch1; // 数字的汉语读法
var Ch2; // 数字位的汉字读法
var nZero = 0; // 用来计算连续的零值的个数
var String3; // 指定位置的数值
if (len > 15) {
alert("超出计算范围");
return "";
}
if (numberValue == 0) {
chineseValue = "零元整";
return chineseValue;
}
String2 = String2.substr(String2.length - len, len); // 取出相应位数的STRING2的值
for (var i = 0; i < len; i++) {
String3 = parseInt(numberValue.substr(i, 1), 10); // 取出需转换的某一位的值
if (i != (len - 3) && i != (len - 7) && i != (len - 11) && i != (len - 15)) {
if (String3 == 0) {
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else if (String3 != 0 && nZero != 0) {
Ch1 = "零" + String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else {
Ch1 = String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
}
else { // 该位是万亿。亿。万。元位等关键位
if (String3 != 0 && nZero != 0) {
Ch1 = "零" + String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else if (String3 != 0 && nZero == 0) {
Ch1 = String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else if (String3 == 0 && nZero >= 3) {
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else {
Ch1 = "";
Ch2 = String2.substr(i, 1);
nZero = nZero + 1;
}
if (i == (len - 11) || i == (len - 3)) { // 假设该位是亿位或元位,则必须写上
Ch2 = String2.substr(i, 1);
}
}
chineseValue = chineseValue + Ch1 + Ch2;
}
if (String3 == 0) { // 最后一位(分)为0时。加上“整”
chineseValue = chineseValue + "整";
}
return chineseValue;
} var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; function generateMixed(n) {
var res = "";
for (var i = 0; i < n; i++) {
var id = Math.ceil(Math.random() * 35);
res += chars[id];
}
return res;
} /// <summary>
/// 实现数据的四舍五入法
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>四舍五入后的结果</returns>
function Round(v, x) {
var isNegative = false;
//假设是负数
if (v < 0) {
isNegative = true;
v = -v;
} var IValue = 1;
for (var i = 1; i <= x; i++) {
IValue = IValue * 10;
}
var Int = Math.round(v * IValue, 0);
v = Int / IValue; if (isNegative) {
v = -v;
} return v;
} /// <summary>
/// 实现数据的向上取整
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>向上取整后的结果</returns>
function Ceiling(v, x) {
var isNegative = false;
//假设是负数
if (v < 0) {
isNegative = true;
v = -v;
} var IValue = 1;
for (var i = 1; i <= x; i++) {
IValue = IValue * 10;
}
var Int = Math.ceil(v * IValue);
v = Int / IValue; if (isNegative) {
v = -v;
} return v;
} /// <summary>
/// 实现数据的向下取整
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>向下取整后的结果</returns>
function Floor(v, x) {
var isNegative = false;
//假设是负数
if (v < 0) {
isNegative = true;
v = -v;
} var IValue = 1;
for (var i = 1; i <= x; i++) {
IValue = IValue * 10;
}
var Int = Math.floor(v * IValue);
v = Int / IValue; if (isNegative) {
v = -v;
} return v;
} /// <summary>
/// 实现数据的四舍五入,向上取整。向下取整
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <param name="type">1四舍五入。2向上取整,3向下取整</param>
/// <returns></returns>
function DecimalProcessing(v, x, type) {
var result = 0;
switch (type) {
case "1":
result = Round(v, x);
break;
case "2":
result = Ceiling(v, x);
break;
case "3":
result = Floor(v, x);
break;
default:
result = Round(v, x);
break;
} return result;
} //除法函数,用来得到精确的除法结果 // 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比較明显。这个函数返回较为精确的除法结果。 //调用:accDiv(arg1,arg2) //返回值:arg1除以arg2的精确结果 function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toString().split(".")[1].length } catch (e) { } try { t2 = arg2.toString().split(".")[1].length } catch (e) { } with (Math) { r1 = Number(arg1.toString().replace(".", "")) r2 = Number(arg2.toString().replace(".", "")) return (r1 / r2) * pow(10, t2 - t1); } } //给Number类型添加一个div方法,调用起来更加方便。 Number.prototype.div = function (arg) { return accDiv(this, arg); } //乘法函数。用来得到精确的乘法结果 //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比較明显。这个函数返回较为精确的乘法结果。 //调用:accMul(arg1,arg2) //返回值:arg1乘以 arg2的精确结果 function accMul(arg1, arg2) { var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); try { m += s1.split(".")[1].length } catch (e) { } try { m += s2.split(".")[1].length } catch (e) { } return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) } // 给Number类型添加一个mul方法。调用起来更加方便。 Number.prototype.mul = function (arg) { return accMul(arg, this); } //加法函数,用来得到精确的加法结果 //说明:javascript的加法结果会有误差。在两个浮点数相加的时候会比較明显。 这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) // 返回值:arg1加上arg2的精确结果 function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2))
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
}
else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
}
else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m } //给Number类型添加一个add方法,调用起来更加方便。 Number.prototype.add = function (arg) { return accAdd(arg, this); } //减法函数,用来得到精确的减法结果 //说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比較明显。 这个函数返回较为精确的减法结果。 //调用:accSub(arg1,arg2) // 返回值:arg1加上arg2的精确结果 function accSub(arg1, arg2) {
var r1, r2, m, n;
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
m = Math.pow(10, Math.max(r1, r2));
//last modify by deeka
//动态控制精度长度
n = (r1 >= r2) ? r1 : r2;
return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
网站通常使用一些javascript包裹 简化电话的更多相关文章
- 网站常用的一些javascript封装 简化调用
//用于网页地址参数 //参数中包含出了英文中文数字之外的其他符号时进行编码并在前面加"=="进行标识,否则直接返回 //解码时根据是否含有"=="标识来决定是 ...
- 给网站添加运行时间的JavaScript完整代码
function secondToDate(second) { if (!second) { return 0; } var time = new Array(0, 0, 0, 0, 0); if ( ...
- 抛砖引玉:探讨网站性能优化之Javascript异步懒加载技术
懒加载技术是现在许多大型网站的都使用的提高网站性能的方式,它的核心思想是当用户想看页面某个区域时,再加载该区域的数据.这在一定程度上减轻了服务器端的压力,也加快了页面的呈现速度. 其实国内很多网站都用 ...
- 网站开发中使用javascript获取浏览器滚动条宽度
在网站开发中,有时候需要获取浏览器滚动条的宽度,在武汉蚂蹄软件服务中心的技术人员指导之下,我实现了该需求.记录如下: 首先说明一下原理: ①生成一个div,设置滚动条不可见,记录其宽度: ②将上面的d ...
- 网站基础html javascript jquery
第二章HTML HBuilder的使用 边改边看模式 chrome浏览器看. HTML的基本格式 超文本标记语言 HyperText Markup Language HyperText 超文本 Mar ...
- CDNJS:使用JavaScript CDN加速网站载入速度
先介绍一下: 内容传递网络(CDN)或者叫内容分发网络,他的作用是给不同区域的访客以其最快的网速.比如,你的网站是开在美国的,但很多访客来自中国,无疑他们会觉得速度很慢,那么,怎么为他们提速呢?简单来 ...
- Web开发——JavaScript基础
参考学习: MDN JavaScript:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript ECMAScript 6入门(阮一峰):htt ...
- 优秀的JavaScript开发框架
JavaScript基本上是一个面向对象的脚本语言,创建web应用程序和互动网站.Javascript框架也被称为Javascript库.JavaScript框架很容易提高设计web开发工作,提供了许 ...
- 向 Web 开发人员推荐35款 JavaScript 图形图表库
图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web 应用和项目的可靠性. 在这篇文章中,我们收集了3 ...
随机推荐
- 解决SQL查询总是超时已过期
解决SQL查询总是超时已过期 .在WIN8里提示:OLE DB 或 ODBC 错误 : 查询超时已过期; HYT00 1.由于数据库设计问题造成SQL数据库新增数据时超时 症状: Microso ...
- 常用PHP中花括号使用规则详解
转自http://www.cnblogs.com/jayleke/archive/2011/11/08/2241609.html 1.简单句法规则(用花括号界定变量名,适用于PHP所有版本): $a ...
- hdu 5056Boring count
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5056 题目大意:就是问在子串中每一个小写字母出现次数不超过k次的个数,注意子串是连续的子串.. . ...
- 安装 MYSQL exec: g++: not found 报错
解决办法: yum install -y gcc-c++
- 单服务器防护linux iptables脚本
#!/bin/bashiptables -Fiptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD DROP/sbin/i ...
- HttpAsyncClient 做并发长连接的一个实例
HttpAsyncClient 做并发长连接的一个实例 import java.util.concurrent.CountDownLatch; import org.apache.http.HttpR ...
- 写代码质量改善java计划151建议——导航开始
2014-05-16 09:08 by Jeff Li 前言 系列文章:[传送门] 下个星期度过这几天的奋战,会抓紧java的进阶学习.听过一句话,大哥说过,你一个月前的代码去看下,慘不忍睹是吧.确实 ...
- SpringMVC @ResponseBody 415错误处理
在查看下面部分内容之前,请先检查你的请求蚕食是否正确,如果全部正确,请继续往下看 刚开始用SpringMVC, 页面要使用jQuery的ajax请求Controller. 但总是失败,主要表现为以下两 ...
- css3进行截取
在css3出现之前,一般采用substring来进行截取,现在 不用js,纯css3也能进行截取了: text-overflow:clip | ellipsis 1.clip: 要在一定的高度内,配合 ...
- Oracle大数据量查询实际分析
Oracle数据库: 刚做一张5000万条数据的数据抽取,当前表同时还在继续insert操作,每分钟几百条数据. 该表按照时间,以月份为单位做的表分区,没有任何索引,当前共有14个字段,平均每个字段3 ...