js

优化网站性能的14条军规 快速提高网站访问速度

六眼飞鱼酱① 提交于 2020-02-20 16:52:35
优化网站性能的14条军规 快速提高网站访问速度 相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功能。比如Google几乎已经把最基本的office应用都搬到了互联网上。当然便利的同时毫无疑问的也使页面的速度越来越慢。自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化网站性能的。 以上是一张web2.0页面的生命周期图。工程师很形象地讲它分成了“怀孕,出生,毕业,结婚”四个阶段。如果在我们点击网页链接的时候能够意识到这个过程而不是简单的请求-响应的话,我们便可以挖掘出很多细节上可以提升性能的东西。今天听了淘宝小马哥的一个对yahoo开发团队对web性能研究的一个讲座,感觉收获很大,想在blog上做个分享。 优化网站性能的14条军规 快速提高网站访问速度,更多内容如下: 相信很多人都听过优化网站性能的14条规则。 1. 尽可能的减少 HTTP 的请求数 [content] 2. 使用 CDN(Content Delivery Network) [server] 3. 添加 Expires 头(或者 Cache-control ) [server] 4. Gzip 组件 [server] 5. 将 CSS 样式放在页面的上方

用js获取当前月份的天数

荒凉一梦 提交于 2020-02-20 14:33:52
由于JavaScript中day的范围为1~31中的值,所以当设为0时,会向前 一天,也即表示上个月的最后一天。 通过这种方式可以得到每个月份的天数,也不同区分闰年了,很方便~ 可以写个这样的函数,如下: function mGetDate(year, month){ var d = new Date(year, month, 0); return d.getDate(); } 在使用时传入想要获取的年份和月份即可,如下: var totalDay = mGetDate(2004,2); //29 如果要获取当前月份天数: var date = new Date();var year = date.getFullYear();var month = date.getMonth()+1;var d = new Date(year, month, 0);var a = d.getDate();console.log(a) 来源: https://www.cnblogs.com/lzghyh/p/12335529.html

【自用】【JS】 月份转换 201909,202009,202010转成2019年09月、2020年09月、10月

℡╲_俬逩灬. 提交于 2020-02-20 13:40:18
formatMon : function ( value ) { if ( value != undefined && value != null && value != "" ) { var strs = new Array ( ) ; //定义一数组 strs = value . split ( "," ) ; //字符分割 var years = new Map ( ) ; for ( var i = 0 ; i < strs . length ; i ++ ) { var str = strs [ i ] ; var year = str . substring ( 0 , 4 ) ; var mon = str . substring ( 4 ) ; if ( years . has ( year ) ) { var m = years . get ( year ) ; m = m + mon + "月、" ; years . set ( year , m ) ; } else { years . set ( year , mon + "月、" ) ; } } var s = "" ; years . forEach ( function ( value , key , map ) { s = s + key + "年" + value ; } ) ; s = s .

js 正则 match

你说的曾经没有我的故事 提交于 2020-02-20 11:54:20
1. 全局匹配    全局匹配时,数组里的数据是匹配到的所有符合正则表达式的字符串。 2.非全局匹配    非全局匹配时,数据里的数据则是 第一个匹配的值 以及正则表达式的 子分组匹配到的值【以第一个值为输入值】 , 【该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本】 再附加上三个属性:    groups :一个捕获组数组或者 undefined(如果没有定义命名捕获组)。    index :匹配结果的开始位置。    input :进行匹配的原字符串。 例子: 1 2 3 4 5 6 7 8 9 10 var patt = /\(([a-z]*([\d]*)[a-z]*)\)/; var pattg = /\(([a-z]*([\d]*)[a-z]*)\)/g; var testStr = '(aaaaa11111(bbbbbb2222222bbaa)bbb(sss333sss)asdbas123bd)' ; var result = testStr.match(patt); var resultg = testStr.match(pattg); console.log(result);   //=> ["(bbbbbb2222222bbaa)", "bbbbbb2222222bbaa", "2222222", index: 11

js中void 0和undefined的区别

旧巷老猫 提交于 2020-02-20 11:43:45
http://blog.csdn.net/aitangyong/article/details/40309211 http://web.jobbole.com/86145/ 综合以上两个博客: 1.void其实是javascript中的一个函数,接受一个参数,返回值永远是undefined。可以说,使用void目的就是为了得到javascript中的undefined。So void 0 is a correct and standard way to produce undefined void 0 void (0) void "hello" void ( new Date()) //all will return undefined 2. 主要有2个原因: a、使用void 0比使用undefined能够减少3个字节。   >"undefined".length //9 >"void 0".length //6 b.undefined并不是javascript中的保留字,我们可以使用undefined作为变量名字,然后给它赋值。这样就会导致不一定会返回undefined,而void 0却永远可以保证。    (function(){     var undefined="haha";     alert(undefined); //"haha"    })() 3.额外篇: (

js高级写法

陌路散爱 提交于 2020-02-20 11:43:15
名称 一般写法 优化 取整(不四舍五入) parseInt(a,10); //Before Math.floor(a); //Before a>>0; //Before ~~a; //After a|0; //After 取整(四舍五入) Math.round(a); //Before num.toFixed(0) a+.5|0; //After 未定义 undefined; //Before void 0; //After, 快 0[0]; //After, 略慢 布尔值短写法 true; //Before !0; //After 串连字符串 ''+a+b+c; //before ''.concat(a, b, c); 字符串截取 str.charAt(0); //before str[0] //after 获取数组是否存在元素 for循环 [1, 2, 3].indexOf(2); 二、优化嵌套的条件语句 可优化大量的ifelse switch语句 before: //method1 if (color) { if (color === 'black') { printBlackBackground(); } else if (color === 'red') { printRedBackground(); } else if (color === 'blue') {

js高级写法

陌路散爱 提交于 2020-02-20 11:43:04
名称 一般写法 优化 取整(不四舍五入) parseInt(a,10); //Before Math.floor(a); //Before a>>0; //Before ~~a; //After a|0; //After 取整(四舍五入) Math.round(a); //Before num.toFixed(0) a+.5|0; //After 未定义 undefined; //Before void 0; //After, 快 0[0]; //After, 略慢 布尔值短写法 true; //Before !0; //After 串连字符串 ''+a+b+c; //before ''.concat(a, b, c); 字符串截取 str.charAt(0); //before str[0] //after 获取数组是否存在元素 for循环 [1, 2, 3].indexOf(2); 二、优化嵌套的条件语句 可优化大量的ifelse switch语句 before: //method1 if (color) { if (color === 'black') { printBlackBackground(); } else if (color === 'red') { printRedBackground(); } else if (color === 'blue') {

JS中 undefined重写 与 void 0

戏子无情 提交于 2020-02-20 11:42:29
在看一些开源源码的时候经常会看到这样一个判断句: if( xxx !== void 0 ) {} 这里的目的是判断指定的变量是不是一个 undefined 之所以这么写,是因为,在ES5之前,undefined 是可以被重写的,在ES5之后修复了这个问题,但只是全局作用域下不可以了,在局部作用域内依然可以改写,比如: (function() { var undefined = 10; console.log(undefined); // 10 console.log(typeof undefined) // number })() void 后面不管跟的什么,返回的都是 undefined 来源: https://www.cnblogs.com/xwant/p/8985502.html

js搜索select内容并多选select

泪湿孤枕 提交于 2020-02-20 07:58:30
公司有套系统,select菜单存放了分类,实在是太多了,每次找类别的时候很困难,做了个搜索 写了注释,大家可以参考 < form id ="form1" name ="form1" method ="post" action =""> < select name ="select" size ="20" id ="myselect" multiple ="multiple"> < option value ="11"> 111444 </ option > < option value ="22"> 211144 </ option > < option value ="33"> 311155 </ option > < option value ="44"> 422355 </ option > < option value ="55"> 533333 </ option > </ select > < input name ="keywords" type ="text" id ="keywords"> < input type ="button" name ="button" id ="button" value =" 给我搜他 " onClick ="selectOne(document.getElementById('keywords').value)"> </ form

关于js中伪数组

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-20 07:16:48
伪数组: 具有length属性; 按索引方式存储数据; 不具有数组的push()、pop()等方法;   伪数组无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push()、pop()等方法,但仍可以对真正数组遍历方法来遍历它们。这种对象有很多,比较特别的是function内的arguments对象,还有像调用getElementsByTagName, document.childNodes之类的,它们都返回的NodeList对象都属于伪数组,也称为类数组,还有自定义的对象,也属于伪数组。我们可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象。 代码例子如下: var fakeArray01 = {0:'a',1:'b',length:2};//这是一个标准的伪数组对象 var arr01 = Array.prototype.slice.call(fakeArray01); alert(arr01[0]);//a var arr02 = [].slice.call(fakeArray01); alert(arr02[0]);//a 还有就是,jQuery中的$()对象都是伪数组对象,其中保存的是DOM对象,基于此,也就更好理解jQuery中的this,目前就理解到这里了,就酱! 来源: