yjiang's cake

修改HOSTS时 Chrome的缓存问题

因工作需要,经常要修改HOSTS在正式与本地环境进行切换;发现chrome浏览器并不能实时的生效,但是ping的时候却没问题.

之前都是先在cmd中执行 ipconfig /flushdns,然后在设置中清除chrome缓存,但并不特别灵光.后来在一篇老外的博客中偶然发现了原因.

问题产生的原因

自己安装了Proxy SwitchySharp翻墙,实际上并不是HOSTS没生效,而是chrome浏览器对socket连接进行了缓存.

解决未安装Proxy SwitchySharp等代理工具时的缓存问题

  1. 正常情况下浏览器都会有缓存,需要让chrome不缓存只需要按F12打开调试工具,点击右上方的齿轮,在Settings中勾选 Disable cache(while DevTools is open) 即可.以后只需要打开调试工具就会自动清除缓存了. clean_chrome_cache

  2. 如果这么做还不好使,可以访问 <chrome://net-internals/#dns> 点击 clear host cache 来清除HOST缓存. clean_dns_cache

安装过代理工具后,清理SOCKET缓存

打开<chrome://net-internals/#sockets>,点击Flush socket pools;强制刷新socket连接池即可. flush_socket_pool

清除Windows系统DNS缓存

打开cmd, 执行 ipconfig /flushdns

另,附上一款好用的用来切换hosts的chrome插件

hosts文件管理工具

linux提示No space left on device原因及解决方法

今天朋友告诉我,他的网站总提示验证码错误;记得网站是用dede做的,应该是空间不足.

上服务器df -lh看了下,很富裕的说;但是依旧报No space left on device;

查了下,发现是

linux服务器文件的特殊结构导致的:

  • inode是用来记录文件的大小,物理地址,属主,属组,读写权限,时间戳,被硬链接的次数等等元数据的.
  • block是用来存储数据的.

查看命令

df -li  #inode
df -lh  #block

定位问题目录

#查出是哪个目录小文件过多导致的
for i in /*; do echo $i; find $i |wc -l; done

#继续按照目录深入 
for i in /home/*; do echo $i; find $i |wc -l; done

用上面的命令很快找出问题产生的原因,是因为{$web_dir}/data/session/生成的session文件过多导致的. 知道了原因,也就好解决了;删除所有session文件,加定时任务清理即可.

yosemite下安装gcc

1.安装 Xcode Command Line Tools brew

安装Xcode至最新版本,并安装Command Line Tools

2. brew edit gcc

#找到如下一段内容,并添加patch do部分
class Gcc < Formula
    def arch
        if Hardware::CPU.type == :intel
            if MacOS.prefer_64_bit?
                "x86_64"
            else
                "i686"
            end
        elsif Hardware::CPU.type == :ppc
            if MacOS.prefer_64_bit?
                "powerpc64"
            else
                "powerpc"
            end
        end
    end

    def osmajor
        `uname -r`.chomp
    end

   # 插入如下部分
   # edit by b.nelissen 20140805
   # tobinjones patch gcc https://github.com/Homebrew/homebrew/issues/29845
   patch do
        url "https://gcc.gnu.org/bugzilla/attachment.cgi?id=33180"
        sha1 "def0cb036a255175db86f106e2bb9dd66d19b702"
   end

3. brew install gcc

耗时的编译过程开始了;喝杯茶,等个半小时左右.

编译失败可以尝试执行

rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup 
ruby -e "$(curl -fsSL        https://raw.github.com/Homebrew/homebrew/go/install)" brew install gcc

参考文档1
参考文档2

jquery 与 json的content-type

当foo.json页面的content-type:text/html

Example:
    $.get('/foo.json', function(data){
       console.log(typeof(data));
    })
    //string类型
jquery接收的数据需要使用JSON.parse(data)转换为对象

当foo.json页面的content-type:application/json

Example:
    $.get('/foo.json', function(data){
       console.log(typeof(data));
    })
    //object类型
jquery接收的数据无需转换

js保留小数点后n位

.toFixed(Num)

var num = 20;
console.log( num.toFixed(2) );

//输出 20.00

Copyright © 2016 yjiang's cake

返回顶部