Javascript 中的闭包其实很改语言中很难理解的一部分。 感谢 Stuart 提供了那么棒的 PPT ,它深入浅出的解释了 Javascript 的闭包技术。
而我「自作主张」地在这份 PPT 中加入了部分的注释(希望没有影响阅读),主要的内容在这里简要整理下。
闭包的概念

「官方」的解释
「闭包」,是指拥有多个变量和绑定了这些变量的环境的
表达式(通常是一个函数),因而这些变量也是该表达式
的一部分。
但不要咬文嚼字,我们简单的可以理解为
闭包是个函数,而它「记住了周围发生了什么」。表现为由「一个函数」体中定义了「另个函数」
function outer () {
...
function inner () {
...
}
}
闭包的作用

setTimeout/setInterval
回调函数(callback)
事件句柄(event handle)
模块化代码

function Container(param) {
    var sercert = 3;
    this.member = param;
    var that    = this; // 注意这行

    function dec() {
        return (sercert > 0) ? --secret : false;
    }

    this.service = function() {
        return (dec()) ? that.member : null;
    }
}

其中 dec 为私有,that 变量引用 Container 同时 service 函数构成了个闭包。

最近很多站长发现火车头采集7.6版本有闪退现象!多条采集规则时采集不到2分钟就出现闪退,让站长很头疼。今天就给大家分享如果解决这个问题的方法。
方法一:
001[1].png
火车头根目录有个文件名为AutoUpdate.exe的文件,把这个文件删除掉,就不会再出现闪退的情况了。

方法二:
修改本地hosts文件即可
hosts文件就在C:\Windows\System32\drivers\etc目录下
20170531115658[1].jpg

002[1].png

127.0.0.1     *.locoy.com
127.0.0.1     *.locoy.com*
127.0.0.1     log.locoy.com
127.0.0.1     61.191.55.91
127.0.0.1     61.191.55.*
127.0.0.1     file1.locoy.com
127.0.0.1     file2.locoy.com
127.0.0.1     file3.locoy.com
127.0.0.1     file4.locoy.com
127.0.0.1     file5.locoy.com
127.0.0.1     file6.locoy.com
127.0.0.1     file7.locoy.com
127.0.0.1     file8.locoy.com
127.0.0.1     file9.locoy.com
127.0.0.1     file10.locoy.com
127.0.0.1     61.191.55.91:818
127.0.0.1     update.locoy.com
127.0.0.1     update.locoy.com
127.0.0.1     www.locoy.com
127.0.0.1     120.26.85.60
127.0.0.1     60.174.233.104
127.0.0.1     check.locoy.com
127.0.0.1     6.zmz2017.com
127.0.0.1     *.zmz2017.com
127.0.0.1     click.tanx.com
127.0.0.1     cdn.tanx.com
127.0.0.1     ef.tanx.com
127.0.0.1     cms.tanx.com

例如配置1.plist类型的文件,让他在浏览器中直接打开,而不是下载。

方法一:全局配置

修改mime.types,添加plist扩展名为text/plain类型,直接显示文本。

在文件中添加如下内容

text/plain                            plist;

20150106084949.jpg

修改好mime.types类型后,直接重启nginx即可。这个方法修改后影响所有nginx网站的配置。

方法二:单独配置

单独打开某个网站的配置文件,在server中修改,例如我让某个网站ios目录下的plist文件显示为text/plain格式。

location ~ .*/ios/.*\.plist$ {
add_header Content-Type text/plain;

}

让某个目录下的文件都显示为text/plain格式。

# Target code

location /code/ {
# All files in it
location ~* {
add_header Content-Type text/plain;
}
}

应该很多人都会搭吧!

不过,有人要详细教程,我就做一个吧!

首先说明一下,SSR属于云免,需要服务器。

虽然,有很多热心人分享自己的SSR服务器

但是,总是出各种问题。共享服务器容易炸,

人多了,网速慢。下片的、带电脑的什么都有。

所以,想要使用稳定的SSR就自己搭建吧!

服务器需要花钱购买,每个平台的价格、配置、购买步骤都不同,具体怎么购买服务器自己慢慢摸索。

用国内服务器的话,就没有翻✌墙功能。

想要免流,同时实现翻✌墙的话,就购买国外的服务器。

你购买服务器后,提供商会给服务器的公网ip、root帐号和密码,用于控制服务器。

大致搭建步骤:

①学会怎么登录服务器

②登录后输入一键搭建代码

③设置SSR密码

④设置SSR远程端口

⑤等待自动搭建完成

具体操作步骤请看图片!

一键搭建SSR代码:

wget https://git.oschina.net/ben123pw/BFW/raw/master/BFWSS.sh && bash BFWSS.sh

安装Wget代码:yum -y install wget

删除脚本文件命令

rm -rf /root/BFWSS.sh >/dev/null 2>&1

本脚本已升级为一键搭建SSR多端口版

不想用SSR了?卸载SSR的方法:

登录服务器后,输入./shadowsocksR.sh uninstall按回车,然后输入y确认。

其它命令:

启动:/etc/init.d/shadowsocks start

停止:/etc/init.d/shadowsocks stop

重启:/etc/init.d/shadowsocks restart

状态:/etc/init.d/shadowsocks status

配置文件路径:/etc/shadowsocks.json

日志文件路径:/var/log/shadowsocks.log

代码安装目录:/usr/local/shadowsocks

额,出去玩了几天很累。可是文章还是要更新的,不然百度就不喜欢我了...

今天来水一篇“导航栏下拉至一定高度后固定在顶部的特效”,也有同学喜欢叫跟随导航什么的。反正就是这个么意思。先直接上代码:

<script type="text/javascript">
$(function(){
var nav=$(".nav"); //得到导航对象
var win=$(window); //得到窗口对象
var sc=$(document);//得到document文档对象。
win.scroll(function(){
  if(sc.scrollTop()>=100){
    nav.addClass("fixednav"); 
   $(".navTmp").fadeIn(); 
  }else{
   nav.removeClass("fixednav");
   $(".navTmp").fadeOut();
  }
})  
})
</script>

将这个js放到要实现效果的页面里面去,然后我们要修改的是第三行的.nav,“nav“改成你自己页面导航栏的class;第七行的”100“为下拉到100个像素的时候触发特效,可以自行修改至合适的高度。

然后在css文件里面增加这个属性:

.fixednav {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    z-index: 1;
}

样就差不多完成了。

大概讲下这个js的意思,判断下拉到一定高度的时候,给导航栏的div插入一个”fixednav“属性,然后给”fixednav“加上固定在顶部的参数。

嗯,大家请自行折腾,有什么不懂的