var i =1;
for(i; i<10; i++){
(function(num){
setTimeout(function(){
console.log(num);
}, num*1000);
})(i);
}
重点在闭包的作用域。
阅读全文

var i =1;
for(i; i<10; i++){
(function(num){
setTimeout(function(){
console.log(num);
}, num*1000);
})(i);
}
重点在闭包的作用域。
准备用nodejs搞一个快速注册163邮箱的东西,需要在某一步的时候post数据到https,node的官方文档实在太简陋了,网上找了个差不多的例子,拿来改了改用。
var util = require('util'),
https = require('https');
var regUrl = “https://ssl.mail.163.com/regall/unireg/call.do;jsessionid=%s?cmd=register.start&adapter=%s&reforward=common/reform&targetCmd=register.ctrlTop";
var cookie = ‘a=b;c=d;’,
mail = ‘regUsername’, pass = ‘password’, vcode=‘abcde’;
var _regUrl = util.format(regUrl, ‘id123455’, ‘param2’);
var post_option = url.parse(_regUrl);
post_option.method = ‘POST’;
post_option.port = 443;
var post_data = querystring.stringify({
’name’ : mail,
‘uid’ : mail+'@163.com’,
‘confirmPassword’ : pass,
‘password’ : pass,
‘vcode’ : vcode,
‘flow’ : ‘main’,
‘from’ : ‘163mail_right’,
‘mobile’ : ‘’,
});
post_option.headers = {
‘Content-Type’ : ‘application/x-www-form-urlencoded’,
‘Content-Length’ : post_data.length,
Cookie : cookie };
var post_req = https.request(post_option, function(res){
res.on('data', function(buffer){
console.log(buffer.toString());
});
post_req.write(post_data);
post_req.end();
<script src="http://yourdomain.com/script.js"></script>
2. 常见异步加载(Script DOM Element)
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'http://yourdomain.com/script.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。
【原创】转载请注明,来自:DigDeeply的博客: http://digdeeply.org/
这几天晚上闲着没事干,偶然间发现新浪爱问的积分还可以换实物礼品,积分来源一部分就是提问回答之类的,还有一部分是要每天签到。我是懒人,也懒得每天提问回答啥的,为了那么个小礼品,也不值得。但是签到还是很简单的嘛,每天点一下就OK了。我比一般懒人还懒,每天点一下都懒得点,所以觉定做个模拟登陆,模拟签到的程序,放到SAE上去,每天帮我签个到,拿个积分就好了,哈哈。:)
其实这个模拟登陆,也就是抓站的基础部分吧, 模拟登陆,获取登陆后的状态,然后模拟人的访问流程,获取访问结果,分析保存之……
首先介绍一下抓站的利器吧,httpwatch,也可以用firefox下的firebug或者chrome下自带的开发者工具,其实我原来一直都是用firefox或者chrome的,但是听说httpwatch很好,就拿来试用一下,结果用的还真是很舒服,不错。其次就是Snoopy.class.php,我用PHP,这个PHP类真是好用到极致了,用来抓站so easy。但是这个类用来抓一般的基于http的站是没问题的,如果要是https的就麻烦了,这个类在抓https的站时,采用的不是php本身的curl了,使用的是Linux/Unix下的原生CURL,所以这个类在windows下用着很麻烦,需要自己装一个windows下能用的curl,并且配置好环境。在sae下直接就是不行的了,如果是用Linux/Unix的话,就很方便了~~指定好curl的路径就可以了。我也有一个https的模拟登录签到的脚本,使用的是php的curl,没有使用Snoopy。
由于新浪采用了单点登陆,所以一般的登陆方法是不行的了,不是直接构造用户名密码POST到一个login action页面完事。先使用httpwatch抓取一下登陆的流程吧。
本指南可以很快让你学会写优美的面向对象JavaScript代码,我保证!学会写简洁的JavaScript代码对一个开发者的发展很重要,随着像Node.js这类技术的出现,你现在可以在服务器端写JavaScript代码了,你甚至可以用JavaScript来查询像MongoDB这样的持久性数据存储。
现在开始写面向对象的JS(OO JS),如果你有什么问题或我遗漏了什么,在下面评论出告诉我。
var bill = {}; 上面的代码没太大用处,仅仅只是创建了一个空对象。让我们动态的添加一些属性和方法到这个对象。
bill.name = "Bill E Goat";
bill.sound = function() {
console.log( 'bahhh!' );
};这里我们添加了“name”属性并赋值为“Bill E Goat”。我们不一定要在前面创建空对象,还可以只用一步完成上面 所有的事。
var bill = {
name: "Bill E Goat",
sound: function() {
console.log( 'bahhh!' );
}
};很简洁漂亮是不是?访问属性和方法也一样很简单。
bill.name; // "Bill E Goat" bill.sound(); // "bahhh"
今天再做一个中国地图的可视化展现,需要对每个省份的轮廓进行染不同颜色,以此来区分各个省份。
用的是百度地图,所以需要用JS来生成Polygon多边形,然后用颜色填充,现在需要随机生成颜色,所以需要随机生成3个0-16的16进制数,拼接起来,作为一个颜色的RGB值。
不多说,直接上简单明了的JS代码,如何随机生成0-16的数,然后把十进制的值转换为十六进制。
var r = parseInt(Math.random()*16); var g = parseInt(Math.random()*16); var b = parseInt(Math.random()*16); //转换为十六进制,使用 int.toString(16)即可. //相应的,还可以使用toString(10) , toString(8), toString(2)来转化为十进制,八进制,二进制等。 r = r.toString(16); g = g.toString(16); b = b.toString(16); //拼接成颜色的RGB值 var color = '#'+r+g+b;
