摘要: JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感, 例如setTimeout( function(){ alert(’你好!’); } , 0);setInterval( callbackFunction , 100);认为setTimeout中的问候方法会立即被执行,因为这并不是凭空而说,而是JavaScript API文档明确定义第二个参数意义为隔多少毫秒后,回调方法就会被执行. 这里设成0毫秒,理所当然就立即被执行了.同理对setInterval的callbackFun 阅读全文
posted @ 2012-10-19 14:19 培哥 阅读(130) 评论(0) 推荐(0) 编辑
摘要: http协议请求头我们再熟悉不过了,一些诸如content-type,etag等等的协议头规定了我们如何使用http协议,以及反映着一些资源的状态。但是我们有注意过http请求头的顺序吗?最近在做爬虫程序时发现了这个问题,在爬到某某网站时,发现之前的爬虫程序一直被爆40X错误,很是纳闷,我都是按照浏览器的请求头来伪造的,加上了referr还是如此。怀疑是因为利用算法禁止了ip地址,于是单独请求,发现还是有部分请求被挡住了,爬虫程序无法正常工作了。但是浏览器端刷新一直很正常,于是将浏览器的请求头按照原封不动的顺序拷入爬虫程序,发现其可以正常使用了。http请求头真的有顺序吗?下面我们看一下各个浏 阅读全文
posted @ 2012-10-19 11:05 培哥 阅读(3077) 评论(0) 推荐(0) 编辑
摘要: 函数作用域的嵌套关系是定义时决定的,而不是调用时决定的,也就是说,javascript的作用域是静态作用域,又叫词法作用域,就这么来的,这是因为作用域的嵌套关系可以在词法分析时确认,而不是等到运行时确定。上代码var scope = 'top';var f1 = function(){ console.log(scope);}var f2 = function(){ var scope = 'bottom'; f1();}f1();//top这个例子中,通过f2调用的f1在查找scope定义时,找到的是父作用域中的scope变量,而不是f2中的局部变量,这就说明 阅读全文
posted @ 2012-10-19 00:06 培哥 阅读(249) 评论(0) 推荐(0) 编辑