银河下的约书亚树,加利福尼亚州,美国 (© Chao Zhang/Getty Images)

Welcom to 评论 - lizhenqiu blog!

    #2110

    作者:广西南宁市
    【74由几个1几个5几个10几个20组成】
    var num = 74; for(one = 0; one <= num; one++){ for(five = 0; five <= num/5 ; five++){ for(ten = 0; ten <= num/5 ; ten++){ for(twenty = 0; twenty <= num/20; twenty++){ if(one + five*5 + ten*10 + twenty*20 == num){ console.log(one + "个1," + five + "个5," + ten +"个10," + twenty + "个20组成。"); } } } } }
    Run code
    Cut to clipboard
      文章:Google方程式 WWWDOT – GOOGLE = DOTCOM  发表时间:2016-10-08, 17:16:37  
      展开↯

      #2111

      作者:广西南宁市
      纯css实现点击特效
      怎么用纯css实现和按钮一样的点击一次,然后改变样式?听说是用伪元素target,不过我不知道怎么操作 visited的方法前面的小伙伴已经讲了;那我还是帮你搞懂伪元素 target 的用法吧。学东西毕竟得踏踏实实,搞懂想要的再去学新的。:target伪选择器指定的ID匹配上时,它的样式就会在这个ID元素上生效。
      Run code
      Cut to clipboard

        CSS里的:target伪选择器
        :target是CSS里一个非常有趣的伪选择器。它在CSS里发生效力的过程是这样的:当浏览器地址里的hash(地址里#号后面的部分)和:target伪选择器指定的ID匹配上时,它的样式就会在这个ID元素上生效。让我们看一看这个:target伪选择器是如何起作用的:
        观看演示
        HTML代码

        下面的两个HTML元素上我们都指定了ID:
        <h2 id="section1">Section 1</h2> <h2 id="section2">Section 2</h2>
        Run code
        Cut to clipboard

          注意上面元素的ID值,当:target指定的ID和window.location.hash值一致时,伪选择器的样式将会生效。

          CSS代码
          :target伪选择器可以配合CSS类、网页标记和任何其它CSS选择器使用: /* would apply to all targetted elements */ :target { color: #000; } /* applies to H2's */ h2:target { color: #f00; }
          Run code
          Cut to clipboard

            当window.location.hash是”section2″时,ID为”section2″的元素将会变红,并显示下划线。简单吧!很像使用了CSS动画技术,你甚至可以在这种效果上做出动画。

            :target非常有趣,但我们还没有发现多少人使用这种技术。其实,如果不是太注重动态效果,使用这种浏览器原生技术来修饰你的应用是不错的选择。
            文章:常用html、demo代码  发表时间:2016-10-08, 09:48:17  
            展开↯

            #2112

            作者:广西南宁市
            纯css3自适滑动选项卡
            用input标签实现css3点击
            <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> html, body { height: 100%; position: relative; overflow: hidden; margin: 0; } div { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: transform 0.4s ease; transform: translateX(-100%); } div:after { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 5vw; font-family: 'Oswald', sans-serif; text-transform: uppercase; color: #fdfdfd; letter-spacing: 4px; } div:nth-of-type(1) { background-color: #1abc9c; } div:nth-of-type(1):after { content: "#1abc9c"; } div:nth-of-type(2) { background-color: #2ecc71; } div:nth-of-type(2):after { content: "#2ecc71"; } div:nth-of-type(3) { background-color: #3498db; } div:nth-of-type(3):after { content: "#3498db"; } div:nth-of-type(4) { background-color: #e74c3c; } div:nth-of-type(4):after { content: "#e74c3c"; } div:nth-of-type(5) { background-color: #34495e; } div:nth-of-type(5):after { content: "#34495e"; } div:nth-of-type(6) { background-color: #9b59b6; } div:nth-of-type(6):after { content: "#9b59b6"; } div:nth-of-type(7) { background-color: #f1c40f; } div:nth-of-type(7):after { content: "#f1c40f"; } div:nth-of-type(8) { background-color: #e67e22; } div:nth-of-type(8):after { content: "#e67e22"; } input[type="radio"] { position: absolute; right: 0; width: 25%; height: 20px; outline: 20px solid; outline-offset: -10px; margin: 0; z-index: 1; cursor: pointer; } input[type="radio"]:nth-of-type(1) { outline-color: #1abc9c; left: 0%; } input[type="radio"]:nth-of-type(2) { outline-color: #2ecc71; left: 25%; } input[type="radio"]:nth-of-type(3) { outline-color: #3498db; left: 50%; } input[type="radio"]:nth-of-type(4) { outline-color: #e74c3c; left: 75%; } input[type="radio"]:nth-of-type(5) { outline-color: #34495e; left: 0%; bottom: 0px; } input[type="radio"]:nth-of-type(6) { outline-color: #9b59b6; left: 25%; bottom: 0px; } input[type="radio"]:nth-of-type(7) { outline-color: #f1c40f; left: 50%; bottom: 0px; } input[type="radio"]:nth-of-type(8) { outline-color: #e67e22; left: 75%; bottom: 0px; } input[type="radio"]:checked+ div { transform: translateX(0%); transition: transform 0.4s ease 0.4s; } </style> </head> <body> <input type="radio" name="name" checked="checked"/> <div></div> <input type="radio" name="name"/> <div></div> <input type="radio" name="name"/> <div></div> <input type="radio" name="name"/> <div></div> <input type="radio" name="name"/> <div></div> <input type="radio" name="name"/> <div></div> <input type="radio" name="name"/> <div></div> <input type="radio" name="name"/> <div></div> </body> </html>
            Run code
            Cut to clipboard
              文章:常用html、demo代码  发表时间:2016-10-08, 09:35:10  
              展开↯

              #2113

              作者:广西南宁市
              CSS3实现自定义Checkbox和Radiobox
              我们知道浏览器自带的Checkbox复选框不怎么美观(这或许是我们看习惯了的缘故),而且复选框在不同的浏览器上显示的样式又有很大的差异,由于目前越来越多的人开始接受支持CSS3的现代浏览器,所以今天就简单的用一些CSS3代码来自定义Checkbox的显示方式,个人觉得比浏览器自带的Checkbox美观不少。
              效果图如下

              下面来分析一下源代码,原理很简单,先把页面上<input type="checkbox" />的display设置为none,从而把它隐藏掉,然后利用CSS3代码来绘制与checkbox邻近的label元素:
              HTML代码:
              <input type="checkbox" id="checkbox-1-1" class="regular-checkbox" /><label for="checkbox-1-1"></label> <input type="checkbox" id="checkbox-1-2" class="regular-checkbox" /><label for="checkbox-1-2"></label> <input type="checkbox" id="checkbox-1-3" class="regular-checkbox" /><label for="checkbox-1-3"></label> <input type="checkbox" id="checkbox-1-4" class="regular-checkbox" /><label for="checkbox-1-4"></label>
              Run code
              Cut to clipboard

                CSS3代码:
                .regular-checkbox + label { background-color: #fafafa; border: 1px solid #cacece; box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px -15px 10px -12px rgba(0,0,0,0.05); padding: 9px; border-radius: 3px; display: inline-block; position: relative; }
                Run code
                Cut to clipboard

                  下面的CSS代码可以让checkbox选中后出现阴影的效果,主要利用了box-shadow属性:
                  .regular-checkbox + label:active, .regular-checkbox:checked + label:active { box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px 1px 3px rgba(0,0,0,0.1); }
                  Run code
                  Cut to clipboard

                    radiobox的实现也是同样的原理
                    文章:常用html、demo代码  发表时间:2016-10-08, 09:33:37  
                    展开↯

                    #2114

                    作者:广西南宁市
                    网页设计前端页面制作的规范要求和注意事项
                    组合命名规则:
                    [元素类型]-[元素作用/内容] 如:搜索按钮: btn-search
                    登录表单:form-login
                    新闻列表:list-news
                    涉及到交互行为的元素命名:
                    凡涉及交互行为的元素通常会有正常、悬停、点击和已浏览等不同样式,命名可参考以下规则:
                    鼠标悬停::hover 点击:click 已浏览:visited
                    如:搜索按钮: btn-search、btn-search-hover、btn-search-visited
                    用户体验方面需要注意的:
                    1). 每个连接,按钮要做上鼠标hover时的一个变化效果。如果hover时是换一张背景图片,请把这两张图片整合在一张图片中,以防止在hover时,页面还在download变化的那张图片,这样会出现那个按钮无图的间隔;
                    2). INPUT有个label,可以让用户在点击字时,光标自动跳入相应input中
                    文章:常用html、demo代码  发表时间:2016-10-08, 09:24:02  
                    展开↯

                    #2115

                    作者:北京市
                    上联:乡下早晨鸡叫人 下联:城里晚上人叫鸡
                    文章:成功的故事只能倒叙着讲  发表时间:2016-10-07, 10:01:40  
                    展开↯

                    #2116

                    作者:中国
                    曾志伟去姚明家,因为姚明家特制的门,门镜高,敲了好几次门都没有人开,以为姚明不在家,就走了。
                    第二天他看到姚明无精打采的,就问他昨晚干嘛去了。
                    姚明神秘的说:昨晚我家好像闹鬼了,一直有人敲门,可是从猫眼又看不见人,吓得我一整夜没睡。
                    误解一般都是因高度不同造成的。 所以,以后再被人误解就别再闹心了,因为高度不同,角度不一样,今天你对太多事情不理解,是因为你还没有站到对方的位置。
                    文章:他不是脾气暴躁,只是不能被打扰  发表时间:2016-10-04, 01:41:38  
                    展开↯

                    #2117

                    作者:中国
                    公司会上,总经理在黑板上做了这四道题: 2+2=4;4+4=8;8+8=16;9+9=20。 员工们纷纷说道:“你算错了一道。” 总经理转过身来,慢慢地说道:“是的,大家看得很清楚,这道题是算错了。可是前面我算对了三道题,为什么没有人夸奖我,而只是看到我算错的一道呢!”做人也是这样,你对他十次好,也许他忘记了,一次不顺心,也许会抹杀所有。这就是100-1=0人性的道理。
                    文章:他不是脾气暴躁,只是不能被打扰  发表时间:2016-10-04, 00:05:47  
                    展开↯

                    #2118

                    作者:广西南宁市
                    程序的优化问题
                    有这样一个问题,有a,b,c,d四个字母,每当刷新页面时会以随机的顺序出现,比如a,d,b,c和b,d,c,a。

                    我当时的解决方案为:
                    <script type="text/javascript"> var str1; var str=[]; var flag1=true; var flag2=true; var flag3=true; var flag4=true; do{ var num=parseInt(Math.round(Math.random()*(4-1))+1); if(num==1&&flag1){ str[str.length]="a"; flag1=false; }else if(num==2&&flag2){ str[str.length]="b"; flag2=false; }else if(num==3&&flag3){ str[str.length]="c"; flag3=false; }else if(num==4&&flag4){ str[str.length]="d"; flag4=false; } }while(flag1||flag2||flag3||flag4) str1=str[0]+str[1]+str[2]+str[3]; document.write(str1); </script>
                    Run code
                    Cut to clipboard

                      不过这样写有着很明显的弊端,那就是下次如果想换一些字母进行输出时,必须将程序进行一次大的更改才能继续进行应用,这样做不利于重复使用
                      下面这种方法就很好的解决了这个问题,当想再次调用时,只需将数组arr中的值进行更改就可以了
                      <script type="text/javascript"> var arr=["a","b","c","d"]; function changestr(){ var newArry=[]; var temp=[];//新创建的两个数组 for(var p in arr){ temp[p]=arr[p];//将原本数组中的值复制给重新定义的数组 } for(var i=0;i<arr.length;i++){ var random=Math.round(Math.random()*(temp.length-1));//产生0~temp数组长度-1的值 newArry[i]=temp[random];//将temp数组中随机出来的数组值赋给新数组 temp.splice(random,1);//删除赋给新数组的值,temp数组的长度减一,直到temp中没有值为止 } return newArry } document.write(Arry=changestr()); </script>
                      Run code
                      Cut to clipboard

                        在我看来,真正好的函数必须做到可重复使用,模块化,和具有良好的封装性。

                        找了个最精简的写法
                        function randomsort(a, b) { return Math.random()>.5 ? -1 : 1;//用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1 } var arr = ["a","b","c","d"]; arr.sort(randomsort); document.write(arr);
                        Run code
                        Cut to clipboard
                          文章:Google方程式 WWWDOT – GOOGLE = DOTCOM  发表时间:2016-09-30, 18:43:01  
                          展开↯

                          #2119

                          作者:广西南宁市
                          盒子不同模式下的宽高判断
                          曾经遇到过这样的问题,设定一个div,当给div设置padding的时候,发现整个div的宽高都发生了变化,这里就产生了一个疑惑,一个盒子的总体宽高到底是怎么去判断的呢?
                          经过查询得知,盒子宽高的判定模式一共有两种,分别为标准模式和怪异模式

                          一般情况下个盒子的宽高在一般情况下等于内容的宽高+边框的宽高+内边距的宽高+外边距的宽高
                          这就是标准模式下的盒子宽高判定

                          但在某些时候(ie6,7,8 下DOCTYPE缺失)盒子的宽高等于设定的宽高+外边距的宽高,这里的设定的宽高就等于内容的宽高+内边距的宽高+边框的宽高
                          这就是怪异模式下的盒子宽高判定

                          我们可以通过使用box-sizing属性来决定使用哪一种模式,
                          content-box : 将采用标准模式解析计算 , border-box: 将采用怪异模式解析计算
                          Run code
                          Cut to clipboard


                            通过怪异模式我们可以在不改变盒子整体宽高的情况下给其设定padding。
                            文章:常用html、demo代码  发表时间:2016-09-30, 18:40:53  
                            展开↯

                            #2120

                            作者:广西南宁市
                            CSS3实现让人有点击欲望的按钮

                            主要通过css3的动画效果来实现

                            总结两点重要属性就是:

                            (1)css3的animation属性,要注意几大内核的兼容
                            animation:myfirst 1s infinite; -moz-animation:myfirst 1s infinite; /* Firefox */ -webkit-animation:myfirst 1s infinite; /* Safari and Chrome */ -o-animation:myfirst 1s infinite ease-in-out; /* Opera */
                            Run code
                            Cut to clipboard


                              然后就是对myfirst动画名称的具体定义
                              @keyframes myfirst{from {font-size:15px;}to {font-size:20px;}} @-moz-keyframes myfirst{from {font-size:15px;}to {font-size:20px;}} /* Firefox */ @-webkit-keyframes myfirst {from {font-size:15px;}to {font-size:20px;}} /* Safari and Chrome */ @-o-keyframes myfirst {from {font-size:15px;}to {font-size:20px;}} /* Opera */
                              Run code
                              Cut to clipboard


                                掌握这两个就可以做出很多非常具有点击欲的按钮
                                文章:常用html、demo代码  发表时间:2016-09-30, 17:44:30  
                                展开↯

                                #2121

                                作者:广西南宁市
                                台湾小哥说:你们有七天长假好好哦~
                                我想说:你们也可以有的...
                                文章:成功的故事只能倒叙着讲  发表时间:2016-09-30, 11:41:36  
                                展开↯

                                #2122

                                作者:广西南宁市
                                完美 全兼容 解决 文字两端对齐 justify 中文姓名对齐
                                text-align:justify; 所有浏览器都支持
                                Run code
                                Cut to clipboard
                                  ,text-justify之类的却只有IE支持,就不要考虑了。

                                  justify我的理解,使元素内部的子元素两端对齐,子元素当然只能是inline或inline-block。但justify对最后一行是无能为力的。我们在对齐姓名时,因为只有一行,当作最后一行,所以不会两端对齐的效果。

                                  姓名对齐我们比较常用的是
                                   (半个中文空格), (一个中文空格)
                                  Run code
                                  Cut to clipboard
                                    来添充两个字,三个字的姓名,使包括四字的姓名都能对齐。例如:

                                    所以就想到了用text-align:justify;但怎么解决单行不能两端对齐呢,思路就是:

                                      让浏览器认为这不是最后一行就行了

                                    在元素里面加一个会换行的空的子元素比如:
                                    <i style="display:inline-block;width:100%;height:0;"></i>
                                    Run code
                                    Cut to clipboard

                                      例子:html结构
                                      <ul class="arter"> <li><span>作品名称<i></i></span>: 宝贝儿</li> <li><span>作品类型<i></i></span>: 油画</li> <li><span>艺术家<i></i></span>: 张玉瀛</li> <li><span>风格<i></i></span>: 超现实</li> <li><span>材质<i></i></span>: 布面油画</li> <li><span>题材<i></i></span>: 人物</li> <li><span>创作时间<i></i></span>: 2011</li> <li><span>所在位置<i></i></span>: 华东</li> <li><span>尺寸<i></i></span>: 78x78cm</li> </ul>
                                      Run code
                                      Cut to clipboard

                                        scss
                                        li{font-size:14px;line-height:24px;color:#4a4a4a; span{height:24px;line-height:24px;width:65px;text-align:justify;display:inline-block;overflow:hidden;vertical-align:top; i{display:inline-block;width:100%;height:0;} } }
                                        Run code
                                        Cut to clipboard

                                          效果

                                          几点注意事项: 1)span要设置为inline-block;才能和后面的字同行显示,同时设置width才会使<i>换行; 2)必须要设置span元素的height,和overflow:hidden否则<i>还是会占高度; 3)vertical-align:top;可以使,li内的span和后面的字,高度对齐,否则会变成
                                          Run code
                                          Cut to clipboard


                                            原文
                                            文章:常用html、demo代码  发表时间:2016-09-29, 16:53:01  
                                            展开↯

                                            #2123

                                            作者:广西南宁市
                                            尾递归~~有点小意思!!!
                                            尾递归很有意思~~~

                                            拿快排说事的话,本来按照通俗易懂的理解,就是两次调用本身来进行左右排序。

                                            按照尾递归的话得,可以省下一半的递归空间,直接拿一次的处理结果的low 或者high当参数传入下一次的调用。整个过程相比于同时进行两次本身的递归调用,这样只使用一次本身递归调用。

                                            尾递归就是用迭代来代替递归全部过程。

                                            递归调用会消耗大量的栈空间,每一次递归调用函数都会新开一个栈空间进行运行,同时要将上一次函数计算结果保存起来。所谓的保存现场,这样会消耗大量的栈空间。于是用迭代、用尾递归代替全递归调用就是一个很好的选择。

                                            最常用距离都是斐波拉契数列,
                                            Feb(n) = n*(n-1)*(n-2)….2*1;
                                            Run code
                                            Cut to clipboard


                                              教科书就是用这个进行举例递归调用的。
                                              function   Feb($n) {      if($n<=2)      {          return $n;      }      $res = $n*Feb($n-1);      return $res; }
                                              Run code
                                              Cut to clipboard

                                                这样就是一个递归调用的最经典的例子,不过在计算的过程中,每次调用的时候都得将上次计算的过程进行现场保存。所以当n很大的时候,这个n会占用很大的内存。

                                                所以改用迭代的过程,或者尾递归的过程,即把每次的计算的结果存储起来同时传递给下一次函数得调用。
                                                function Febs($n,$sum) {      if($n<=2)      {          return $sum;      }      else      {         return Febs($n-1,$sum*$n);      } }
                                                Run code
                                                Cut to clipboard

                                                  在快排改进排序中也是同样利用while迭代,来替代另外一次的递归调用。
                                                  function Partion(&$arr,$low,$high) {     if($low >= $high)     {         return;     }     //标记位     $povion = $arr[$low];     while ($low <$high )     {         while ($low < $high && $arr[$high] <= $povion)         {             $high--;         }         $arr[$low] = $arr[$high];         while ($low < $high && $arr[$low] > $povion)         {             $low++;         }         $arr[$high] = $arr[$low];     }     //循环完了之后将标记位回复到i=j相交的位置     $arr[$low] = $povion;     return $low; } function Qsort(&$arr,$low,$high) {     if($low >= $high )     {         return;     }     while($low < $high)     {         $povision =  Partion($arr,$low,$high);         Qsort($arr,$low,$povision-1);         $low = $povision+1;     }      //正常的递归调用快排算法如下      //    $povision =  Partion($arr,$low,$high);          //    Qsort($arr,$low,$povision);      //    Qsort($arr,$povision+1,$high); }
                                                  Run code
                                                  Cut to clipboard

                                                    突然发现一个问题,我原来混淆了斐波拉契数列。把n的阶乘当成斐波拉契数列数列啦。斐波拉契数列定义应该是
                                                    Feb(n) = Feb(n-1)+Feb(n-2);
                                                    Run code
                                                    Cut to clipboard


                                                      代码同理:
                                                      function   Feb($n) {      if($n<=2)      {          return 1;      }      $res = Feb($n-1)+Feb($n-2);      return $res; } $res = Feb(20); print_r($res); function Febs($n,$sum1,$sum2) {      if($n<2)      {          return $sum1;      }      else      {         return Febs($n-1,$sum2,$sum1+$sum2);      } }  print_r(Febs(20,1,1));
                                                      Run code
                                                      Cut to clipboard

                                                        其实所谓尾递归,还是递归调用。但是内部就是用的所谓的迭代。其实可以用while循环来改写。将else部分替换成while的话,可能会更显而易见。
                                                        文章:Google方程式 WWWDOT – GOOGLE = DOTCOM  发表时间:2016-09-29, 16:47:36  
                                                        展开↯

                                                        #2124

                                                        作者:广西南宁市
                                                        缓存在网站开发中的重要性
                                                        通过计算斐波那契数列明白缓存在网站开发中的重要性
                                                        1 、首先测试一下没有使用数据缓存来计算斐波那契数列。
                                                        var count = 0; function fib(n) { count++; if(n === 0 || n === 1) { return 1; } return fib(n - 1) + fib(n - 2); } fib(40); console.log(count);//count是函数fib运算次数,当fib(40)时候运行次数高达:331160281次,感兴趣的可以检测一下。
                                                        Run code
                                                        Cut to clipboard

                                                          2、下面我们看看使用数据缓存来计算斐波那契数列。
                                                          // 缓存是怎么使用的? // 一般的缓存结构就是:键值对(对象 或者 数组) // var obj = {}; // var arr = []; // 使用缓存的方式: // 1 先去缓存中查找有没有键对应的数据 // 2 如果有,就直接拿过来使用 // 3 如果没有,就计算或者是查询到,然后,要放到缓存中! // 4 以后,就通过缓存来去数据 // 简化的步骤:先去缓存中查询有没有,如果没有就计算,并将结果放到缓存中 // 问题:缓存放到什么位置去?? // 如果是全局变量,此时,任何人都能修改全局变量的内容 // 那就造成:数据不准确 // var obj = {}; // 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89.... var count = 0; var fib = (function() { // 使用闭包,将缓存放到闭包中去, // 此时,就对这个缓存起到了保护的作用 // var cache = {}; var cache = []; // 这个函数使用来计算:斐波那契数列 return function(n) { count++; // 1 先去缓存中查找有没有该键对象的值 if(cache[n] !== undefined) { // 2 如果有,就直接返回当前的值 return cache[n]; } // 3 如果没有,就计算,然后要添加到缓存中去 if(n === 0 || n === 1) { // return 1; cache[n] = 1; return cache[n]; } var temp = arguments.callee(n - 1) + arguments.callee(n - 2); // 放到缓存中去 cache[n] = temp; return cache[n]; }; })(); fib(40); console.log(count);// 计算次数为:79次。
                                                          Run code
                                                          Cut to clipboard

                                                            通过上面两次对比,瞬间觉得数据缓存的重要性,由331160281次下降到79次。感兴趣的屌丝可以测试一下fib(50);的运行次数,不使用数据缓存我测试了,我的浏览器崩溃了,使用数据缓存运行才99次。
                                                            文章:Google方程式 WWWDOT – GOOGLE = DOTCOM  发表时间:2016-09-29, 16:35:52  
                                                            展开↯

                                                            #2125

                                                            作者:广西南宁市

                                                            文章:成功的故事只能倒叙着讲  发表时间:2016-09-29, 16:10:38  
                                                            展开↯

                                                            #2126

                                                            作者:广西南宁市
                                                            延迟JavaScript的加载
                                                            浏览器在执行JavaScript代码时会停止处理页面,当页面中有很多JavaScript文件或代码要加载时,将导致严重的延迟。尽管可以使用defer、异步或将JavaScript代码放到页面底部来延迟JavaScript的加载,但这些都不是一个好的解决方案。
                                                            下面是Google的建议。
                                                            <script type="text/javascript"> function downloadJSAtOnload() { var element = document.createElement("script"); element.src = "defer.js"; document.body.appendChild(element); } if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false); else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload); else window.onload = downloadJSAtOnload; </script>
                                                            Run code
                                                            Cut to clipboard

                                                              这段代码的意思是等待页面加载完成后,然后再加载外部的“defer.js”文件。下面是测试结果。

                                                              文章:常用html、demo代码  发表时间:2016-09-29, 12:15:28  
                                                              展开↯

                                                              #2127

                                                              作者:广西南宁市
                                                              人太容易被惯性 推动着前进,而思维惯性是弊端最大的一个东西~~~要勇于打破一些禁锢自己的东西,这需要一个坚持的过程
                                                              文章:成功的故事只能倒叙着讲  发表时间:2016-09-28, 14:56:59  
                                                              展开↯

                                                              #2128

                                                              作者:广西南宁市
                                                              setInterval(function() { if(Date.now() >= new Date("2016-09-12 15:59:00")) { $("#seckillQuantity").val(1);//1盒 $(".buyButtons.J_buyButtons").click();//抢购按钮 var value = $(".answerList").children().eq(0).html(); //验证码取值 $('#randomAnswer').val(value);//验证码填值 $('.answer-button').children().eq(0).click();//提交验证码 } }, 10)
                                                              Run code
                                                              Cut to clipboard
                                                                文章:《阿里盛世下的蝼蚁》  发表时间:2016-09-27, 11:42:16  
                                                                展开↯
                                                                你好,残忍屏蔽广告

                                                                确定要清除编辑框内容吗?

                                                                该删除操作将不可恢复。

                                                                删除 取消

                                                                激活Windows

                                                                转到"设置"以激活Windows。