Hot For Coding
  • 阻止IE8下右键菜单的弹出

    今天写一个自定义右键菜单功能,要实现这个功能需要捕获右键事件,这个很容易,几乎没有任何兼容。标签上添加 oncontextmenu 事件就好。下来就是阻止事件传播以及阻止系统右键弹出菜单的功能。于是我这么干

    var e = evt || window.event;
     
    if (e.preventDefault) {
      e.preventDefault();
    }
         
    if (e.stopPropagation) {
      e.stopPropagation();
    } else {
      e.cancelBubble = true;
    }
    

    ...

    READ ALL

  • Nginx配置proxy_cache后缓存目录里没有生成缓存文件

    之前一直都使用memcached做缓存,最近想尝试一下Nginx的proxy_cache缓存方式,proxy_cache可以根据指定key的组合方案生成MD5哈希把页面结果存储在磁盘上,跟大多综合站点的生成静态页的缓存方式一样。proxy_cache方式跟memcached内存级别的缓存还是不能比拟,但Nginx目前还不能做memcached的write动作,所以简单配置proxy_cache也能抵挡不少鸭梨。

    没有配置好proxy_cache

    但在网络上搜索几篇文章以后,发现大家写的很模糊,很多文章都是抄袭复制品。所以按照网络上的教程,我一开始是这么配置的,在http段增加:

    ...

    READ ALL

  • 狡猾的几道PHP试题,试试看看你会不会也掉入陷阱

    这几道题是在网上看到的,感觉挺有意思,拿来给大家分享其中的陷阱,看看你会不会掉入其中。

    第一题

    $arr = array(0 => 1, "aa" => 2, 3, 4);
    
    foreach($arr as $key=>$val){
      print($key == "aa" ? 5 : $val);
    }
    

    输出结果是多少?如果的答案是1534就掉入陷阱了。

    先看看这个数组最终形成的结构:

    Array
    (
      [0] => 1
      [aa] => 2
      [1] => 3
      [2] => 4
    )
    

    然后遍历每一个元素的key看等不等于aa,等于就用5替代。当我告诉你答案是5534的时候,你会不会有点惊讶!难道0等于"aa"吗?是的,0就等于"aa",这道题重点就考你这个。在PHP中两个值进行逻辑判断时,如果两个值的类型不一致PHP会自动把右边的值转换到左边的类型,然后再进行判断。因此"aa"转换整形等于0,自然也就等于左边的0了。你可以使用全等于避免这种该情况,也就是如果你写成

    ...

    READ ALL

  • MySQL IFNULL函数判断字段值为NULL时使用默认值

    在使用left join等联表查询时,常遇到某些字段为null,一般都在程序处理使用if a==null判断做处理,其实MySQL本身也有一个IFNULL函数可以处理。

    name:

    mysql> select * from name;
    +------+-----------+
    | id   | user      |
    +------+-----------+
    |    1 | xiaoqiang |
    |    2 | lisi      |
    |    3 | xiaowu    |
    |    4 | laoliu    |
    +------+-----------+
    4 rows in set (0.00 sec)
    

    ...

    READ ALL

  • Nginx支持.htaccess

    Nginx和Apache的.htaccess自然是一点关系都没有,然而由于历史原因非常多的Apache用户正在逐步使用Nginx,同样是WebServer,部分规则特性都是相通的,要想在Nginx使用.htaccess目前最简单的方法是把.htaccess翻译到nginx.conf。显然已经有人这么干了,并且还推出了网页版

    打开这个网页,把你的.htaccess内容粘贴到文本框中,点Convert按钮即可生成nginx.conf,并且这个工具还支持格式检查,非常好用。当然了,毕竟是程序翻译的,最好还是检查一下转换结果再使用。

    ...

    READ ALL

  • Git常用命令

    Git是一个分布式版本控制软件,目前非常流行,尤其是去中心化,相比SVN我更觉得Git更加好用

    # 它可以将当前目录初始化一个Git仓库
    $ git init
    
    # 克隆一个远程的仓库,这个地址一般有两种协议
    # 1、http
    # 2、ssh
    $ git clone [remote repo url]
    
    # 查看改了哪些文件
    $ git status
    
    # 添加修改的文件,后面的点表示添加所有文件
    $ git add .
    
    # 提交代码
    $ git commit -m "first commit"
    
    # 查看所有记录
    $ git log
    
    # 设置远程仓库
    $ git remote set-url origin [url]
    
    # 同步远程代码到本地
    $ git pull
    
    # 推送到远程分支
    $ git push -u origin master
    
    # 查看所有tag
    $ git tag
    
    # 打tag
    $ git tag v1.0.0
    
    # 列出所有本地分支
    $ git branch
    
    # 列出所有远程分支
    $ git branch -r
    
    # 如果本地和远程都要列出来
    $ git branch -a
    
    # 新建一个分支并切换
    $ git branch -b [branch name]
    
    # 切换回master分支
    $ git checkout master
    
    # 合并dev分支到master分支
    $ git merge --no-ff dev
    
    # 删除分支
    $ git branch -d dev
    

    ...

    READ ALL

  • 推荐一个JavaScript的变种脚本语言CoffeeScript

    首先,为什么会有CoffeeScript这种东西,原因特别简单,为了弥补JavaScript的不足。它的运行原理特别简单,按照它的语法编写程序,在丢到浏览器运行之前需要使用它的编译器编译成JavaScript代码。理论上,也属于编译语言,只不过传统上我们认识的编译语言都是编译成二进制

    使用之前需要安装

    npm install coffeescript
    

    ...

    READ ALL

  • 关于script标签

    script标签是我们主要引入或者编写JavaScript脚本代码的标签,通常它这么使用

    <script>
    // Here is JavaScript codes
    console.log('Hello World!');
    </script>
    

    也可以使用src指定远程脚本,这个远程脚本可以是任意URI资源

    app.js

    // Here is JavaScript codes
    console.log('Hello World!');
    

    index.html

    <script src="app.js"></script>
    

    ...

    READ ALL

  • yum命令出现 段错误 (core dumped)

    使用yum命令安装东西或者yum update时都提示以下错误:

    [root@lee ~]# yum update
    Loaded plugins: fastestmirror, refresh-packagekit
    Loading mirror speeds from cached hostfile
     * base: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.tuna.tsinghua.edu.cn
     * soluslabs: mirror.eu1.soluslabs.net
     * updates: mirrors.tuna.tsinghua.edu.cn
    段错误 (core dumped)
    

    ...

    READ ALL

  • 一个可以使用浏览器通过SSH连接Linux的程序

    如果你总是在新的电脑上需要使用SSH客户端连接你的远程服务器,又不想没换一个环境就要安装一次SSH客户端,那么这个程序就是你需要的,地址

    把它下载到你的服务器端,按照教程设置并启动服务

    打开一款支持WebSocket协议的浏览器,输入服务器地址,顺利的话你应该能看到这个页面

    full

    如果输入正确的地址加授权信息,就能顺利登入系统

    full

    ...

    READ ALL