中国春节传统汉字“福” (© DuKai摄影师/Getty Images)

Welcom to 评论 - lizhenqiu blog!

    #2547

    作者:广西南宁市
    '如果一个人只做他力所能及的事情,那么这个人将永远不会进步'
    文章:成功的故事只能倒叙着讲  发表时间:2016-05-31, 17:14:18  
    展开↯

    #2548

    作者:广西南宁市
    成熟的人从不将情绪写在脸上,他们都有自己的表情包。
    文章:常用html、demo代码  发表时间:2016-05-31, 14:43:31  
    展开↯

    #2549

    作者:广西南宁市
    什么样的人写什么样的代码。好大喜功的爱抽象,喜欢冒险的不屑处理异常,脑子混乱的常出死循环,强迫症就看变量命名,偷懒的藕合度极高。每每回顾自己写的代码,仿佛开批斗会,经常提醒我是一个怎么垃圾的人。
    文章:常用html、demo代码  发表时间:2016-05-31, 12:07:21  
    展开↯

    #2550

    作者:广西南宁市
    “来大理,都是一些在城里有问题的人!”
    文章:常用html、demo代码  发表时间:2016-05-31, 09:23:21  
    展开↯

    #2551

    作者:广西南宁市
    什么时候,国内这些叫得上名来的企业能像奔驰和宝马那般优雅的互相调侃,而非恶意攻击,算是功德圆满了。
    文章:常用html、demo代码  发表时间:2016-05-31, 09:19:04  
    展开↯

    #2552

    作者:广西柳州市
    zoom:1;属性是IE浏览器的专有属性,Firefox等其它浏览器不支持。它可以设置或检索对象的缩放比例。除此之外,它还有其他一些小作用,比如触发ie的hasLayout属性,清除浮动、清除margin的重叠等。
    但很遗憾的是,它通不过W3C验证.
    文章:常用html、demo代码  发表时间:2016-05-30, 11:12:41  
    展开↯

    #2553

    作者:广西柳州市
    $info = json_decode(trim($info,chr(239).chr(187).chr(191)),true);
    Run code
    Cut to clipboard
      文章:常用html、demo代码  发表时间:2016-05-30, 10:54:25  
      展开↯

      #2554

      作者:广西柳州市
      对于必应的抓取,小幻目前已知的有三种,手机版,必应的XML文档+JSON,还有像我这样的直接首页抓取
      手机版的抓取出来会有必应的水印,我就不介绍了。一下主要介绍一下首页抓取和XML中抓取

      XML/JOSN的内容都是必应的一个接口,用哪个都是可以的,就不多说了。
      XML和json的抓取很简单。
      XML的抓取正则preg_match("/<url>(.+?)<\/url>/ies", $str, $matches)
      如果是JSON就更简单了,直接从JSON中接收就好了
      再说说直接首页的抓取吧,一样是正则抓取
      首页抓取正则preg_match_all("/g_img={url:'(.*)'/U",$d,$img)
      然后,后面你要干什么自己想吧!
      额,忘了说几个被抓取得页面了
      首页抓取,就直接打开首页即 cn.bing.com
      XML文档地址
      http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1
      Run code
      Cut to clipboard

        JSON地址
        http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
        Run code
        Cut to clipboard

          好了,就这么写,不过速度我真不知道哪个好,自己看着办吧,反正我用着首页的,不过我是保存到数据库。不用每次都抓取,每次打开都重新抓取一遍,感觉不太友好!
          文章:Web前端的35个jQuery小技巧  发表时间:2016-05-26, 14:42:52  
          展开↯

          #2555

          作者:广西柳州市
          "/><script>alert(document.cookie)</script><!--
          文章:Web前端的35个jQuery小技巧  发表时间:2016-05-26, 14:41:03  
          展开↯

          #2556

          作者:广西柳州市
          代码耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。)

          软件工程规定写代码的原则是“高内聚,低耦合”。内聚是代码块间的独立性,耦合是各个代码块间的联系。

          对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。

          代码内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

          高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。长期来看,低耦合的模块便于进行单元测试,且便于维护。

          举例:
          在java中,你想在你的程序中调用某个类比如说是A1,如果你在程序中直接new A1(),这样就写死了。如过下次业务逻辑有变化,你就必须重新修改A1类的代码。在这种情况下,如果A1类被其他的程序调用,你修改了A1类的代码,可能会对其他程序造成影响。
          但是如果你在配置文件里配置你要用到的类的相关属性,通过程序动态地区获得,你只用修改这个配置文件,把他指向另一个类A2就行了。用A2替代A1。这就是低耦合,也是java的面向增加开放,面向修改关闭的原则。
          文章:Web前端的35个jQuery小技巧  发表时间:2016-05-26, 14:38:58  
          展开↯

          #2557

          作者:广西柳州市
          一个完整的ajax包,包括了错误处理,超时处理等功能
          使用Ajax
          使用Ajax的步骤主要有:创建Ajax对象,Ajax对象打开连接,Ajax对象发送数据,Ajax获得响应。

          1. 创建Ajax对象

          不同的浏览器有着不同的创建方法,因此我们需要封装一个创建Ajax对象的方法,大部分标准浏览器都支持原生的XMLHttpRequest对象,因此我们首先检测是否存在XHR对象方法,存在则直接调用,否则我们定义一个XMLHttpRequest方法。

          [javascript] view plaincopy

          //自运行函数,用于创建XMLHttpRequest方法
          (function() {
          //存在原生的XHR,直接返回
          if( typeof XMLHttpRequst !== 'undefined') {
          return;
          } else if( typeof ActiveXObject !== 'undefined') {//否则判断ActiveXObject
          XMLHttpRequest = function() {
          if( typeof arguments.callee.activeXString !== 'string') {
          var versions = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
          for(var i = 0, len = versions.length; i < len; ++i) {
          try {
          var xhr = new ActiveXObject(versions[i]);
          arguments.callee.activeXString = versions[i];
          return xhr;
          } catch(ex) {

          }
          }
          }

          return new ActiveXObject(arguments.callee.activeXString);
          };
          } else{
          XMLHttpRequest = function(){
          throw new Error('No XHR object available');
          };
          }
          })();



          2. 打开连接

          通过第1步的代码,我们可以首先创建一个AJAX对象: var xhr = new XMLHttpRequest(); 接着打开连接xml.open("GET", "/some/url.cgi", true);
          当然,我们通过后台异步的发送请求,自然先要对请求参数进行序列化,以下是一个序列化函数:
          [javascript] view plaincopy

          //表单数据序列化,支持两种不同的对象:
          //-表单输入元素的数组
          //-键/值对的散列表
          //返回串行化后的字符串
          var serialize = function(a){
          var s = [];
          if(a instanceof Array){
          for (var i=0, len = a.length; i<len; ++i) {
          s.push(a[i].name + '=' + encodeURIComponent(a[i].value));
          };
          } else{
          for(var k in a){
          s.push(k + '=' + encodeURIComponent(a[k]));
          }
          }

          return s.join('&');
          };


          3.发送请求

          发送GET请求则可以按如下步骤:

          [javascript] view plaincopy

          <pre name="code" class="javascript"><pre name="code" class="javascript">var xhr = new XMLHttpRequest();
          xhr.open('GET', "/some/url.cgi?"+serialize(data), true);
          xhr.send(null); //参数null对某些浏览器来说是必须的


          发送POST的请求则需要先设置请求头的MIME类型,通常是application/x-www-form-urlencoded, 一个简单的示例如下:

          [javascript] view plaincopy

          <pre name="code" class="javascript" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; background-color: rgb(240, 240, 240); ">var xhr = new XMLHttpRequest();
          xhr.open('POST', "/some/url.cgi?", true);
          xhr.setRequestHeader("Content-Type","application/x-www-urlencoded");
          xhr.send(serialize(data));


          4. 处理HTTP响应

          在收到响应后,响应的数据会自动填充XHR对象的属性:

          responseText:作为响应主体被返回的文本
          respinseXML: 如果响应的内容类型是"text/xml"或"application/xml",这个属性将保存包含着响应数据的XML DOM文档
          status: 响应的HTTP状态
          statusText:HTTP状态的说明

          在接到响应后,第一步是检查status属性,以确定响应已经成功返回。一般来说,可以将HTTP状态代码为200作为成功标志,此外状态码304表示请求的资源没有被修改,可以直接使用浏览器中缓存的版本,因此应该检测这两种属性。

          当收到响应时,可以检测XHR对象的readyState属性,该属性表示请求/响应过程中的当前活动状态,且当readyState属性的值由一个变成另一个时,会触发一次readyStatechange事件,可以利用这个事件来检测每次状态变化后的readyState的值。 readyState的值有以下几种:

          0:未初始化。尚未调用open()方法。
          1:启动。已经调用open()方法,但尚未调用send()方法。
          2:发送。已经调用send()方法,但尚未收到响应。
          3:接收。已经接收到部分响应数据。
          4:完成。已经接收到全部响应数据,而且已经可以在客户端使用了。

          另外,在IE8中,还为XHR对象添加了一个timeout属性,表示请求在等待响应多少毫秒后就终止,在给timeout设置一个数值后,如果在规定时间内浏览器还未收到响应,那么会触发一个timeout事件,进而会调用ontimeout事件处理程序。当然为了保持跨浏览器的运行,我们可以自行模拟一个超时响应。


          有了以上的介绍,我们则可以开发出一个完整的ajax包,包括了错误处理,超时处理等功能。代码如下:

          [javascript] view plaincopy

          //一个封装好的ajax对象
          var ajax = {};
          //检查服务器HTTP响应的成功状态
          ajax.httpSuccess = function(xhr){
          return xhr.status >= 200 && xhr.status < 300 || xhr.status == 304;
          };
          //发起一个ajax请求,opt为传入的设置参数对象
          ajax.request = function(opt){
          //如果没有提供某个选项的值,就用默认值代替
          opt = {
          //请求方法
          method: opt.method || "POST",
          //请求的URL
          url:opt.url || "",
          //请求超时的时间
          timeout: opt.timeout || 5000,
          //请求失败、成功或完成(不管成功还是失败都会调用)时执行的函数
          complete: opt.complete || function(){},
          error: opt.error || function(){},
          success: opt.success || function(){},
          //发送的请求参数
          params: opt.params || ""
          };

          var xhr = new XMLHttpRequest(), //创建xhr对象
          timeout = opt.timeout,//保存超时时间,默认5秒
          requestDone = false,//标志请求是否完成
          params = XX.serialize(opt.params); //GET请求的话则将参数序列化接到url后面

          if(params !== '' && opt.method === 'GET'){
          params = '?' + params;
          opt.url += params;
          }
          //初始化xhr
          xhr.open(opt.method, opt.url, true);

          //初始化一个5秒的回调函数,用于取消请求(如果尚未完成的话)
          setTimeout(function(){
          requestDone = true;
          }, timeout);

          //监听文档状态的更新
          xhr.onreadystatechange = function(){
          //保持等待,直到数据完全加载,并保证请求未超时
          if(xhr.readyState == 4 && !requestDone){
          if(XX.ajax.httpSuccess(xhr)){
          //成功则调用回调函数,并传入xhr对象
          opt.success(xhr, xhr.responseText)
          } else {
          //发生错误
          opt.error();
          }

          //调用完成回调函数
          opt.complete();

          //避免内存泄漏,清理文档
          xhr = null;
          }
          };

          if(opt.method === 'POST'){
          xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
          xhr.send(params); //若为POST请求,则需序列化数据
          } else{
          xhr.send(null);
          }
          };
          文章:Web前端的35个jQuery小技巧  发表时间:2016-05-26, 14:37:30  
          展开↯

          #2558

          作者:广西柳州市
          现在的人工智能太过于追求“像人“这一点上,这是个错误的方向
          文章:成功的故事只能倒叙着讲  发表时间:2016-05-26, 09:56:12  
          展开↯

          #2559

          作者:广西柳州市
          如果不抽气,一开始建立高真空,水进入高真空密闭环境又会怎样?
          文章:高中生不知道的13个科学事实  发表时间:2016-05-25, 10:19:28  
          展开↯

          #2560

          作者:广西柳州市
          抽气降低压强到一定程度水就会沸腾。一边抽气,一边降低温度,到零度的时候,压强低到一定程度就开始沸腾,可这时候又是冰点,于是一边沸腾一边结冰
          文章:高中生不知道的13个科学事实  发表时间:2016-05-25, 10:15:32  
          展开↯

          #2561

          作者:广西柳州市
          把猫和黄油面包绑在一起,从高处扔下去,猫会飞起来。
          文章:高中生不知道的13个科学事实  发表时间:2016-05-25, 10:15:02  
          展开↯

          #2562

          作者:广西柳州市
          007: 俗话说,上梁不正下梁歪,你那些手下比你还贪婪,亏你还有脸站在忠党爱国这四个字的前面,中国有你这样的大魔头,老百姓是不会有好日子过的,我今天一定要为民除害。
          司令:就凭你们两个废物……
          文西:(把外衣一脱)废物?!我费了一生的精力,集合十种杀人武器于一身的超级武器霸王,名字就叫做要你命3000,终于研究成功了。阿七,靠边一点,远一点,再远一点。
          司令:是吗?那我倒真想见识见识。
          文西 要你命3000,(提出一串烂东西)西瓜刀、铁链、火药、硫酸、毒药、手枪、手榴弹、杀虫剂,每样都能独当一面,现在集中在一起,看你怕不怕?
          司令:你这个老神经病,快点去死吧。
          文西:哎等一等。(手一伸,没说完子弹穿透手臂,倒下。)
          007:文西!
          文西:阿七,全靠你了。
          007:事到如今,没别的办法,(脱帽,脱外套)我只有单刀赴会。
          文章:细数电影里那些酷炫的杀器  发表时间:2016-05-19, 15:51:31  
          展开↯

          #2563

          作者:广西柳州市
          行尸走肉瑞克的左轮
          文章:细数电影里那些酷炫的杀器  发表时间:2016-05-19, 15:49:34  
          展开↯

          #2564

          作者:广西柳州市
          恐怖星球那个,让我想起了城市猎人里的将军
          文章:细数电影里那些酷炫的杀器  发表时间:2016-05-19, 15:49:10  
          展开↯

          #2565

          作者:广西柳州市
          破坏力最大的大杀器应该是最新版《星球大战》里边可以跨星系发射的歼星炮
          文章:细数电影里那些酷炫的杀器  发表时间:2016-05-19, 15:45:44  
          展开↯
          你好,残忍屏蔽广告

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

          该删除操作将不可恢复。

          删除 取消

          激活Windows

          转到"设置"以激活Windows。