• JavaScript位置location对象操作例子

    在JavaScript中,使用location对象可以通过很多方式来改变浏览器的位置。看看W3C上的描述location的一句话

    Note: There is no public standard that applies to the location object, but all major browsers support it.

    大意是location对象没有标准定义,但主流浏览器都支持

    看看以下例子看你掌握了几种

    /**
     * JavaScript位置location对象操作例子
     * 琼台博客 www.qttc.net
     */
     
    // 假设初始URL为 https://www.qttc.net/lee/
     
    // 将URL修改为 https://www.qttc.net/lee/#top
    location.hash = '#top';
     
    // 将URL修改为 https://www.qttc.net/lee/?q=php
    location.search = '?q=php';
     
    // 将URL修改为 https://www.lizhong.me/lee/
    location.hostname = 'www.lizhong.me';
     
    // 将URL修改为 https://www.qttc.net/dir/
    location.pathname = 'dir';
     
    // 将URL修改为 https://www.qttc.net:8888/lee/
    location.port = 8888;
    

    ...

    READ ALL

  • MySQL替换函数replace

    一般对于博客程序来说,使用替换语句也许是最有用的一种维护方式了,特别是对于所有博文内容里有统一修改的地方。由于我的博客站点在upload图片上传目录下需要按年建目录,这倒不是什么难点,可是之前上传的图片都要移动到相应的目录里,这样的话博文里所有的图片URL都要改变。

    比如图片a.jpg原来在upload路径下,博文里的地址是

    https://www.qttc.net/static/upload/a.jpg

    现在要把a.jpg移动到upload下的2012文件夹里,那么博文里的地址就需要改变成

    https://www.qttc.net/static/upload/2012/a.jpg

    ...

    READ ALL

  • JavaScript私有变量

    JavaScript没有私有变量这一说,所以实际在开发过程可能很容易就出现变量被破坏是常有的事

    但我们可以通过闭包的方式来解决这个问题,如以下例子

    var instance = (function(){
      var private = {}
    
      return {
        setValue: function(key, val){
          private[key] = val
        },
    
        getValue: function(key) {
          return private[key]
        }
      }
    })()
    
    // Usage
    instance.setValue('name', 'qttc')
    
    var name = instance.getValue('name')
    
    console.log(name) // Output: qttc
    

    ...

    READ ALL

  • JavaScript闭包

    JavaScript最有意思的就是闭包,很简单,闭包的出现就是解决变量作用域的问题

    看看这个例子

    for (var i = 0; i < 2; i++) {
      (function(n){
        console.log(n);
      })(i)
    }
    
    // Output:
    //  0
    //  1
    

    以上例子就是需要在for循环中能够接收到每一个变量,于是有些朋友就说了,直接console.log不就好了吗?

    for (var i = 0; i < 2; i++) {
      console.log(i);
    }
    
    // Output:
    //  0
    //  1
    

    ...

    READ ALL

  • 七月流量1.4G!

    记得六月的时候我的流量不到1G,当时觉得实现一个月1G流量算是最大的心理安慰了,今天统计了一下7月流量,结果使用了1.42G。

    虽然也有一些图,但都是压缩过的,流量占比应该不大,所以流量应该算是有点增加了!

    上图 (七月的)

    full

    六月的

    full

    虽说相对于200GB的月额定流量来说,还不到一个百分点,但相对于六月来说,实现了翻倍,不过也有可能是7月发布的博文带图的略多一些。看来那些大神说一天用30G,估计都是高清壁纸之类或者电影下载站了。否则博客站点以文字为主要内容的页面要达到30G一天,先不说PV有多少,就是光复制粘贴文字得有多大量的文字才能实现这个目标啊?那一定世界排名第一了。

    ...

    READ ALL

  • zsh command not found rvm-prompt

    zsh确实是一个非常好用的命令终端,特别是提供的多皮肤样式更容易装逼

    但最近zsh老是提示

    zsh: command not found: rvm-prompt

    这个错误大意是说找不到rvm-prompt,解决这个问题也非常简单,安装rvm-prompt让它找到不就好吗?

    curl -sSL https://get.rvm.io | bash
    

    如果你是Mac操作系统的话,记得加sudo

    sudo curl -sSL https://get.rvm.io | bash
    

    如果成功安装,那么再此打开命令终端,应该不会再提示zsh: command not found: rvm-prompt之类的了

    ...

    READ ALL

  • JavaScript中switch匹配容易混淆的一个细节

    switch语句与if语句的关系最为密切,也是其它编程语言中普遍使用的一种流程控制语句,但switch的匹配是全等模式,如果不注意这个细节则写程序时往往会出错。

    var n = '5';
    switch(n){
      case 5:
        console.log('执行case分支');
        break;
      default:
        console.log('执行default分支');
    }
    
    // Output: 执行default分支
    

    可能很多人会误以为以上程序会走case分支,结果却走了default分支。难道它们两个不相等吗?我们使用if语句看看。

    ...

    READ ALL

  • JavaScript巧用length属性增删数组

    在JavaScript中可以利用length计算数组元素个数,但length并不是只读的,通过改变length的值可以实现数组的增删功能。

    var arr = ['琼台博客', 'www.qttc.net', 'Web技术'];
    console.log(arr.length); // Output: 3
    

    声明了一个数组arr,分别给了三个元素。分别是

    arr[0] = 琼台博客
    arr[1] = www.qttc.net
    arr[2] = WEB技术

    数组arr的length元素值是三个,我们把length的值改成2。

    ...

    READ ALL

  • JavaScript复制对象误区

    如果不了解JavaScript数据类型,那么也许你会以为对象的复制是相互独立的,其实它们都是一个指针,而这个指针指向存储在堆中的一个对象。复制结束后,两个变量实际上将引用同一个对象。因此改变其中一个变量会影响另外一个变量。

    普通变量复制,相互独立

    也就是变量只是引用,并不是真正的地址

    // 声明一个变量str1
    var str1 = '琼台博客';
     
    // 将变量str1赋值给str2
    var str2 = str1;
     
    // 再改变str1的值
    str1 = 'www.qttc.net'
     
    // 打印str1与str2的结果
    console.log('str1:' + str1 + ', str2:' + str2); // Output: str1: www.qttc.net, str2: 琼台博客
    

    ...

    READ ALL

  • VPS的操作系统选择

    在买VPS时,除了价格,机房,性能,带宽以外就是操作系统的选择了,如何选择适合的操作系统呢?这是许多购买VPS的站长面临的一个重要问题,以下我们就谈谈如何选择合适的操作系统。

    虽然操作系统多种多样,但归根结底还是以Win平台与Linux平台为两大类别。

    Win平台

    full

    Win平台在国内的VPS提供商里,几乎是每一家都提供的操作系统。由于微软操作系统的普及,使得许多站长在操作Win服务器操作系统的时候也容易上手,配置也快。在Win平台里最有优势的就是使用IIS+asp或者asp.net加SQLServer,全一套都是微软开发的,也只能在Win平台上运行。但这个平台的费用不低,特别是数据库价格更是让许多个人站长望而止步。但目前使用asp.net搭建Web平台的并不多了,除了某些公司的系统以外,特别是个人想使用asp.net的博客系统几乎找不到。

    ...

    READ ALL